用maven+ssm开发CRUD项目

用maven+ssm开发CRUD项目(eclipse)

本文章素材来源于网易云课堂:https://study.163.com/course/courseMain.htm?courseId=1003862031

文章目录

  • 用maven+ssm开发CRUD项目(eclipse)
    • 实现功能点:
    • 使用技术点:
    • 开发步骤
      • 1.先创建一个maven工程:
      • 2.引入项目依赖的jar包
      • 3.引入bootstrap前端框架
      • 4.编写ssm整合的关键配置文件---web.xml
        • 1.在web.xml中指定项目启动就启动spring容器
        • 2.在web.xml中配置springMVC的前端控制器拦截所有请求
        • 3.在web.xml中配置字符编码过滤器,过滤器有顺序,此为最前!
        • 4.在web.xml中配置使用rest风格URI的过滤器,将普通的post请求转化为delete请求或者put请求
      • 5.编写ssm整合的关键配置文件---SpringMVC的配置文件dispatcherservlet-servlet
        • 1.配置包扫描
        • 2.配置视图解析器
        • 3.两个标准配置
        • 4.文件上传的配置(扩展)
      • 6.编写ssm整合的关键配置文件---Spring的配置文件applicationContenxt.xml
        • 1.配置包扫描
        • 2.配置数据源
        • 3.配置与mybatis的整合
        • 4.事务控制的配置
      • 7.编写ssm整合的关键配置文件---mybatis的配置文件mybatis-config.xml
      • 8.逆向工程生成bean
      • 9.修改mapper文件
      • 10.搭建单元测试

实现功能点:

用maven+ssm开发CRUD项目_第1张图片

使用技术点:

用maven+ssm开发CRUD项目_第2张图片

开发步骤

1.先创建一个maven工程:

用maven+ssm开发CRUD项目_第3张图片
在properties里面进行设置webapp下的目录文件:
用maven+ssm开发CRUD项目_第4张图片
用maven+ssm开发CRUD项目_第5张图片
用maven+ssm开发CRUD项目_第6张图片

为了开发的方便, 还需对maven工程进行两个配置(setting.xml)
用maven+ssm开发CRUD项目_第7张图片
①镜像(使下载jar包的速度加快)
用maven+ssm开发CRUD项目_第8张图片
②JDK和编译器的版本
用maven+ssm开发CRUD项目_第9张图片

2.引入项目依赖的jar包

用maven+ssm开发CRUD项目_第10张图片
maven的中央仓库(https://mvnrepository.com/)去中央仓库

Springmvc和spring的jar包

①Spring webmvc
用maven+ssm开发CRUD项目_第11张图片
②Spring jdbc
用maven+ssm开发CRUD项目_第12张图片
③Spring Aspects
在这里插入图片描述
Mybatis相关的包:

①mybatis
用maven+ssm开发CRUD项目_第13张图片
Mybatis逆向工程的包:

①mybatis Generator Core
在这里插入图片描述
Mybatis整合spring的适配包

①mybatis Spring
在这里插入图片描述
数据库连接池, 驱动包

①c3p0
用maven+ssm开发CRUD项目_第14张图片
②MySQL connector
用maven+ssm开发CRUD项目_第15张图片
Jstl , servlet-api , junit等其他包

①jstl
用maven+ssm开发CRUD项目_第16张图片
②Servlet api
用maven+ssm开发CRUD项目_第17张图片
注意: 为了避免与服务器冲突, 加上provided
用maven+ssm开发CRUD项目_第18张图片
③junit
用maven+ssm开发CRUD项目_第19张图片
④springTest
用maven+ssm开发CRUD项目_第20张图片

3.引入bootstrap前端框架

到bootstrap官网下载:www.bootcss.com
用maven+ssm开发CRUD项目_第21张图片
用maven+ssm开发CRUD项目_第22张图片
用maven+ssm开发CRUD项目_第23张图片
下载后解压之后得到此文件夹:
在这里插入图片描述
使用可参考官方文档:https://v3.bootcss.com/getting-started/#download
如果想使我们写的jsp界面变得好看,就可以直接用bootstrap库里面的样式!
将下载的bootstrap-3.3.7-dist这个文件夹放在项目的static目录下,并在jsp页面引入(bootstrap.min.js和bootstrap.min.css):
用maven+ssm开发CRUD项目_第24张图片
用maven+ssm开发CRUD项目_第25张图片
bootstrap需要用到jQuery,因此引入jquery:
用maven+ssm开发CRUD项目_第26张图片
三步做完之后,我们就可以使用bootstrap里面所有的样式了!
到bootstrap中文网,点击全局css样式
用maven+ssm开发CRUD项目_第27张图片
运用上里面的class属性,就可以实现了!
用maven+ssm开发CRUD项目_第28张图片
用maven+ssm开发CRUD项目_第29张图片
更多样式只需要进入官方文档进行搜索使用!

4.编写ssm整合的关键配置文件—web.xml

1.在web.xml中指定项目启动就启动spring容器

用maven+ssm开发CRUD项目_第30张图片
在监听器中配置spring配置文件的内路径
用maven+ssm开发CRUD项目_第31张图片

2.在web.xml中配置springMVC的前端控制器拦截所有请求

用maven+ssm开发CRUD项目_第32张图片
配置dispatcherServlet,有两种方法:
1.在此处配置springMVC的路径
用maven+ssm开发CRUD项目_第33张图片
但是一般都用方法二:
不指定其位置,而是删去标签,将改为dispatcherServlet,并在web.xml的同级目录下添加springMVC的配置文件,名字改为servlet-name-servlet,即dispatcherServlet-servlet。
用maven+ssm开发CRUD项目_第34张图片
并在web.xml的同级目录下添加springMVC的配置文件,命名为:dispatcherservlet-servlet
用maven+ssm开发CRUD项目_第35张图片

3.在web.xml中配置字符编码过滤器,过滤器有顺序,此为最前!

使用Ctrl+shift+T,进行查找类文件:CharacterEncodingFilter,然后复制类名全路径,放入中
用maven+ssm开发CRUD项目_第36张图片
处理乱码的代码如下(配置在web.xml中):


	
		characterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
		
			forceRequestEncoding
			true
		
		
			forceResponseEncoding
			true
		
	
	
		characterEncodingFilter
		/*
	

4.在web.xml中配置使用rest风格URI的过滤器,将普通的post请求转化为delete请求或者put请求

使用Ctrl+shift+T,进行查找类文件:HiddenHTTPMethodFilter,然后复制类名全路径,放入中
用maven+ssm开发CRUD项目_第37张图片
设置请求为rest风格的代码如下(配置在web.xml中):


	
		HiddenHttpMethodFilter
		org.springframework.web.filter.HiddenHttpMethodFilter
	
	
		HiddenHttpMethodFilter
		/*
	

5.编写ssm整合的关键配置文件—SpringMVC的配置文件dispatcherservlet-servlet

1.配置包扫描

第一步:使用context:component-scan组件
用maven+ssm开发CRUD项目_第38张图片
然后将基础包配置为所有包,再禁用掉其默认的规则,设为false
用maven+ssm开发CRUD项目_第39张图片
当将其默认规则禁用之后,就只扫描里面的包了。
用maven+ssm开发CRUD项目_第40张图片


  	
  		
  	


2.配置视图解析器


	
		
		
		
	

3.两个标准配置

1.将springMvc不能处理的请求交给tomcat,实现动态和静态都可以处理


2.能支持springMVC一些更高级的功能,如映射动态请求、JSR303交验、快捷地ajax请求等。。


4.文件上传的配置(扩展)


6.编写ssm整合的关键配置文件—Spring的配置文件applicationContenxt.xml

1.配置包扫描

spring的包扫描与springmvc的不同,
Spring父容器负责所有其他非@Controller注解的Bean的注册,而SpringMVC只负责@Controller注解的Bean的注册
因此,spring中配置如下:



   

以上可以看出,没有禁用掉默认的规则,就是除了下面的,都扫描!

2.配置数据源

配置数据源首先要建一个bean,ID为DataSource,class为c3p0,“com.mchange.v2.c3p0.CombopoolDataSource”
用maven+ssm开发CRUD项目_第41张图片
数据源的信息一般不写死,而是写在创建的dbconfig.properties中,在spring的配置文件中使用property标签进行引入即可:
用maven+ssm开发CRUD项目_第42张图片

3.配置与mybatis的整合

①配置sqlsessionFactory
用maven+ssm开发CRUD项目_第43张图片
下面是上图的右半部分value值:
用maven+ssm开发CRUD项目_第44张图片
②配置扫描器,将mybatis的接口的实现(此实现是一个代理对象)加入到IOC容器中
用maven+ssm开发CRUD项目_第45张图片

4.事务控制的配置

首先在/WEB-INF/applicationContext.xml添加以下内容:



   
       
   

注:这是作为公共使用的事务管理器Bean。这个会是事先配置好的,不需各个模块各自去配。

下面就开始配置各个模块所必须的部分,在各自的applicationContext-XXX-beans.xml配置的对于事务管理的详细信息。
首先就是配置事务的传播特性,如下:



    
      
      
      
      
      
      
      
    







需要注意的地方:

(1) advice(建议)的命名:由于每个模块都会有自己的Advice,所以在命名上需要作出规范,初步的构想就是模块名+Advice(只是一种命名规范)。

(2) tx:attribute标签所配置的是作为事务的方法的命名类型。

其中*为通配符,即代表以save为开头的所有方法,即表示符合此命名规则的方法作为一个事务。

propagation="REQUIRED"代表支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

(3) aop:pointcut标签配置参与事务的类,由于是在Service中进行数据库业务操作,配的应该是包含那些作为事务的方法的Service类。

首先应该特别注意的是id的命名,同样由于每个模块都有自己事务切面,所以我觉得初步的命名规则因为 all+模块名+ServiceMethod。而且每个模块之间不同之处还在于以下一句:

expression=“execution(* com.test.testAda.test.model.service..(…))”

其中第一个代表返回值,第二代表service下子包,第三个*代表方法名,“(…)”代表方法参数。

(4) aop:advisor标签就是把上面我们所配置的事务管理两部分属性整合起来作为整个事务管理。

图解:
用maven+ssm开发CRUD项目_第46张图片

7.编写ssm整合的关键配置文件—mybatis的配置文件mybatis-config.xml

因为mybatis整合到spring中了,因此数据源、sql工厂等配置都写到了spring的配置文件中
在mybatis的配置文件中只需要写:
文件头—固定的
另外可以选择性把公共的配置写进来,如:驼峰命名规则、类型别名等。

  

 
	
		
		
	
	
    
		
     
 

8.逆向工程生成bean

①编写一个逆向工程的配置文件

由于此配置文件内容较多,请参考我的另一篇博客:
https://blog.csdn.net/IT_lukaifang/article/details/90743669

②编写一个运行的java文件,让其应用上配置文件,对bean、dao接口、mapper等进行生成:

到http://www.mybatis.org/generator/running/runningWithJava.html拿到如下代码:

 List warnings = new ArrayList();
   boolean overwrite = true;
   File configFile = new File("generatorConfig.xml");
   ConfigurationParser cp = new ConfigurationParser(warnings);
   Configuration config = cp.parseConfiguration(configFile);
   DefaultShellCallback callback = new DefaultShellCallback(overwrite);
   MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
   myBatisGenerator.generate(null);

然后写一个类,将其configFile 改为自己的配置文件名,再写入main方法运行即可!

9.修改mapper文件

在使用mybatis的逆向工程生成了mapper文件之后,就得根据需要修改mapper文件

如自动生成的查询所有的sql,我们有时需要联合查询出外键表的数据,就需要进行手动的修改。

注意!
dao层的sql写完之后,需要去数据库软件中进行测试,必须先把dao层打通再往下写,写一层,测一层!

10.搭建单元测试

一般的,我们要进行单元测试的搭建一般会:
先写一个测试类,然后在测试方法上打上@Test标签,创建一个SpringIoc容器,再从容器获得mapper,如下:
用maven+ssm开发CRUD项目_第47张图片
但是,spring的项目可以使用spring的单元测试,可以自动注入我们所需的组件。
因此我们用以下步骤进行单元测试的搭建:

①导入SpringTest模块

在jar包导入的时候,导入这个:
用maven+ssm开发CRUD项目_第48张图片
②测试类打上ContestConfiguration注解来指定Spring配置文件的位置:
用maven+ssm开发CRUD项目_第49张图片
③测试类打上Junit的注解@RunWith来指定将使用哪个单元测试
用maven+ssm开发CRUD项目_第50张图片
④直接autowired注入需要测试的mapper即可!
用maven+ssm开发CRUD项目_第51张图片
⑤在测试方法中调用方法进行测试即可!
用maven+ssm开发CRUD项目_第52张图片

你可能感兴趣的:(ssm框架)