context

细说MVC中仓储模式的应用

一个人想着一个人 提交于 2020-02-21 22:38:02
文章提纲 概述要点 理论基础 详细步骤 总结 概述要点 设计模式的产生,就是在对开发过程进行不断的抽象。 我们先看一下之前访问数据的典型过程。 在Controller中定义一个Context, 例如: private AccountContext db = new AccountContext(); 在Action中访问,例如获取用户列表: var users=db.SysUsers; 类似于这种,耦合性太高。业务逻辑直接访问数据存储层会导致一些问题,如 重复代码;不容易集中使用数据相关策略,例如缓存;后续维护,修改增加新功能不方便 等等。 我们使用repository来将业务层和数据实体层分开来,业务逻辑层应该对组成数据源层的数据类型不可知,比如数据源可能是数据库或者Web service 在数据源层和业务层之间增加一个repository层进行协调,有如下作用: 1.从数据源中查询数据 2.映射数据到业务实体 3.将业务实体数据的修改保存到数据源 (持久化数据) 这样repository就将业务逻辑和基础数据源的交互进行了分隔。 数据和业务层的分离有如下三个优点: 1.集中管理不同的底层数据源逻辑。 2.给单元测试提供分离点。 3.提供弹性架构,整体设计可以适应程序的不断进化。 我们将会对原有做法进行两轮抽象,实现我们想要的效果。 理论基础

Entity Framework Core系列之实战(ASP.NET Core MVC应用程序)

与世无争的帅哥 提交于 2020-02-21 21:27:29
本示例演示在ASP.NET 应用程序中使用EF CORE创建数据库并对其做基本的增删改查操作。当然我们默认你的机器上已经安装了.NET CORE SDK以及合适的IDE.本例使用的是Visual Studio Code. 创建一个ASP.NET Core 应用程序 如果你电脑上安装了VS2015或者更高版本,就可以使用项目模板创建一个ASP.NET Core application,或者可以使用命令行工具创建项目。在本例中我们将在Visual Studio Code 中使用命令行工具: 第一步:创建一个文件夹,哪个盘都行,假设我们创建y一个叫做 EFCoreWebDemo的文件夹,创建之后用Visual Studio Code 打开,再打开终端窗口: 在终端窗口下执行以下命令: > dotnet new mvc 创建一个MVC应用程序 > dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 2.1.0 > dotnet add package Microsoft.EntityFrameworkCore.Tools --version 2.1.0 从Nuget添加一些需要的包到项目中(这里一定要注意版本version一致,,否则会报错,我的本机是2.1.0) > dotnet restore

1.SSM项目整合所有配置详解

元气小坏坏 提交于 2020-02-21 19:25:08
转载:https://blog.kuangstudy.com/index.php/archives/487/ 一.SSM项目整合所有配置详解 1.规划: 环境要求:IDEA,MySQL5.7.19,Tomcat 9,Maven 3.6,IDEA插件Lombok 开发流程从后向前:项目搭建 --> MySQL --> MyBatis --> Spring --> SpringMVC --> web.xml 搭建项目目录: ustc.wzh.pojo:实体类(对应数据库的数据表) ustc.wzh.dao:数据操作层(对数据库CRUD) ustc.wzh.service:业务层 ustc.wzh.controller:控制层 配置文件也是从后向前: 项目搭建: pom.xml中导入jar包 pom.xml中设置Maven资源过滤设置 MySQL: 搭建数据库和数据表 MyBatis: mybatis-config.xml:(配置,连接,绑定,操作数据库) 用于配置数据源(现在交给Spring管理) 数据库相关信息 数据关联:数据表与pojo层关联 数据操作:与dao层Mapper.xml关联CRUD操作 database.properties:用于配置数据库连接的用户名和密码等 Spring: applicationContext.xml:Spring配置整合文件 用于整合spring

springboot web - 启动(1) 创建SpringApplication

末鹿安然 提交于 2020-02-21 19:17:16
一. 测试代码 @SpringBootApplication public class SbmvcApplication { public static void main(String[] args) { SpringApplication.run(SbmvcApplication.class, args); } } 此处我的springboot 版本是 2.0.3.RELEASE <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3

IDEA部署tomcat原理小解

ぐ巨炮叔叔 提交于 2020-02-21 10:09:17
IDEA部署tomcat原理小解 最近看到一个视频对IDEA部署启动tomcat有了新的理解。下面和大家分享一下。 1.tomcat部署项目的三种方式 在纯tomcat环境下,不使用开发工具tomcat部署项目有三种方式。 ①把html放到tomcat的webapps目录下的hello文件夹中,如下图。 启动tomcat访问http://localhost:8080/hello/hello.html就能够连接到hello.html了。 这里稍微提一下虚拟路径即web项目中ContextPath,servlet中配置的是ServletPath。上面这种方式配置的虚拟路径”/hello”和项目路径是相等的。但是这个方法配置的web项目都要在webapps的目录下。eclipse的web项目部署方法应该就是这种。 ②第二种方式如下图: 区别与第一种方式,第二种的项目放在了d盘,没有在webapps的目录下。那么tomcat如何访问里面的资源呢?见下图 在tomcat的conf下有一个server.xml文件打开编辑文件在上图所圈位置加入了一段代码 <Context docBase = "D:\hello" path = "/hi" /> 1 不难发现,其中docBase指的是项目路径,path为虚拟路径。这里项目路径就和虚拟路径不一致了。大家可以联想到一个点

Wox插件制做(C#)

萝らか妹 提交于 2020-02-21 09:45:59
一开始准备用Python写的,但是给Python的API不够全,一些功能无法实现或者实现起来很麻烦,就换成官方推荐的C#了。官方文档写得不是很齐全,幸运的是可以参考官方的开源代码。 虽然以前没有写过C#,但是写了几年Java,稍微试了一下,感觉C#和Java的相似度还是很高的,开发过程中语言层面也没有造成很大的问题。 开发环境 Visual Studio 2019 工程设置 框架:.NET Framework 4.7.2 输出类型:类库 项目代码文件 1. Main.cs 插件的入口,用来给Wox进行调用。 实现接口 Wox.Plugin.IPlugin 响应关键词查询,返回对应的结果集。 实现方法 //插件初始化的钩子函数,可以保存插件上下文变量,载入设置文件(自行定义实现) public void Init(PluginInitContext context); //query变量中有用户输入的关键字,通过用户输入的关键字可以在程序中决定返回的结果集 public List<Result> Query(Query query); 重要类型说明 PluginInitContext context context.CurrentPluginMetadata.PluginDirectory :获取插件的安装目录 context.API.ChangeQuery :改变查询关键字

Asp.net中的web.config配置

梦想与她 提交于 2020-02-21 05:58:20
Asp.net 中的web.config配置 By Bendon 20101123 目录 Asp.net中的web.config配置... 1 一、 配置文件保存位置... 2 二、 配置文件加载顺序... 2 三、 配置文件节点介绍... 3 1. <configSections>. 3 2. <appSettings>. 5 3. <connectionStrings>. 5 4. <system.web>. 6 <location>. 11 四、 针对配置文件的一些编程操作... 11 1. 运行时进行配置文件的修改... 11 2. 配置节点的加密... 12 web.config是asp.net中保存配置信息(比如数据库连接字符串等)的重要文件。它是基于xml的文本文件方式放在Web应用程序的任何目录中,并且默认不随源文件编译到Dll中,而运行环境随时监视着它是否有改变,一但有变动,系统会自动重新加载里面的最新内容。 一、 配置文件保存位置 .net的默认配置文件保存在“windows目录\Microsoft.NET\Framework\对应.net版本\config”文件夹下面。不同的操作系统windows目录不一样,我们在命令行下输入“echo %windir%”查看windows目录所在的位置。 图:web.config所在的目录 Asp

Java Spring用properties配置数据库连接池出现错误的处理方法[图]

孤街浪徒 提交于 2020-02-21 03:24:48
错误 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 17 in XML document from class path resource [db-config.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 17; columnNumber: 78; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'contest:property-placeholder'. 保存数据库用户名等信息的properties文件 mysql-username=root mysql-password=abcd2020 mysql-jdbcUrl=jdbc:mysql://192.168.3.16/beers mysql-driverClass=com.mysql.jdbc.Driver Java的测试类 package com.mars.springtest; import org.junit.Test; import org

Android Studio SharedPreferences

倾然丶 夕夏残阳落幕 提交于 2020-02-20 23:48:36
  Android 中最简单的数据存储方式 : SharedPreferences SharedPreferences 数据存储处理实际上时对一个个key——value 数据对的处理 使用SharedPreferences 保存key-value 对的一般步骤: 1. 使用Activity 类 的 getSharePreferences方法获取SharePreferences 对象,指定文件名和访问权限 2.获得SharePreferences.Editor 对象,并调用该对象的putXXX 方法保存key-value 对 3. 通过SharePreferences.Editor 的commit 方法提交保存 key-value 对 示例一: 认识并使用 1 package com.example.sharedpreferences; 2 3 import androidx.appcompat.app.AppCompatActivity; 4 5 import android.content.Context; 6 import android.content.SharedPreferences; 7 import android.os.Bundle; 8 import android.util.Log; 9 10 11 public class MainActivity

配置扫描注解的包

允我心安 提交于 2020-02-20 13:38:52
配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--配置扫描注解的包,会自动扫描包及其所有子包下的注解--> <context:component-scan base-package="com.ly.spring"></context:component-scan> </beans> 来源: https://www