博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven整合SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
阅读量:7103 次
发布时间:2019-06-28

本文共 17959 字,大约阅读时间需要 59 分钟。

使用SSM(SpringSpringMVCMybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。这次先说说三大框架整合过程。个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。不过,如果用都不会,谈思想就变成纸上谈兵了!!!

1、基本概念

1.1、Spring

 

        Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

1.2、SpringMVC

 

     

        Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了、模型、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

1.3、MyBatis

 

       MyBatis 本是的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis MyBatis是一个基于Java的框架。iBATIS提供的框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

2、开发环境搭建

 

如果需要,参看之前的博文:

3、Maven Web项目创建

 

如果需要,参看之前的博文:

4、SSM整合

 

      

        下面主要介绍三大框架的整合,至于环境的搭建以及项目的创建,参看上面的博文。这次整合我分了

 

使用框架都是较新的版本:

       Spring 4.0.2 RELEASE

       Spring MVC 4.0.2 RELEASE

       MyBatis 3.2.6

 

4.1、Maven引入需要的JAR包

         为了方便后面说的时候不需要引入JAR包,我这里 pom.xml

 

1     
2
3
4.0.2.RELEASE
4
5
3.2.6
6
7
1.7.7
8
1.2.17
9
10 11
12
13
junit
14
junit
15
4.11
16
17
test
18
19
20
21
org.springframework
22
spring-core
23
${spring.version}
24
25 26
27
org.springframework
28
spring-web
29
${spring.version}
30
31
32
org.springframework
33
spring-oxm
34
${spring.version}
35
36
37
org.springframework
38
spring-tx
39
${spring.version}
40
41 42
43
org.springframework
44
spring-jdbc
45
${spring.version}
46
47 48
49
org.springframework
50
spring-webmvc
51
${spring.version}
52
53
54
org.springframework
55
spring-aop
56
${spring.version}
57
58 59
60
org.springframework
61
spring-context-support
62
${spring.version}
63
64 65
66
org.springframework
67
spring-test
68
${spring.version}
69
70
71
72
org.mybatis
73
mybatis
74
${mybatis.version}
75
76
77
78
org.mybatis
79
mybatis-spring
80
1.2.2
81
82
83
84
javax
85
javaee-api
86
7.0
87
88
89
90
mysql
91
mysql-connector-java
92
5.1.30
93
94
95
96
commons-dbcp
97
commons-dbcp
98
1.2.2
99
100
101
102
jstl
103
jstl
104
1.2
105
106
107
108
109
log4j
110
log4j
111
${log4j.version}
112
113 114 115
116
117
com.alibaba
118
fastjson
119
1.1.41
120
121 122 123
124
org.slf4j
125
slf4j-api
126
${slf4j.version}
127
128 129
130
org.slf4j
131
slf4j-log4j12
132
${slf4j.version}
133
134
135
136
137
org.codehaus.jackson
138
jackson-mapper-asl
139
1.9.13
140
141
142
143
commons-fileupload
144
commons-fileupload
145
1.3.1
146
147
148
commons-io
149
commons-io
150
2.4
151
152
153
commons-codec
154
commons-codec
155
1.9
156
157 158 159

 

4.2、Spring与MyBatis的整合

 

 

所有需要的JAR包都引入以后,首先进行SpringMyBatis的整合,然后再进行JUnit测试,先看一个项目结构图:

4.2.1、建立JDBC属性文件

 

jdbc.properties(文件编码修改为utf-8

 

1     driver=com.mysql.jdbc.Driver   2     url=jdbc:mysql://10.221.10.111:8080/db_zsl   3     username=demao   4     password=demao   5     #定义初始连接数   6     initialSize=0   7     #定义最大连接数   8     maxActive=20   9     #定义最大空闲  10     maxIdle=20  11     #定义最小空闲  12     minIdle=1  13     #定义最长等待时间  14     maxWait=60000

 

4.2.2、建立spring-mybatis.xml配置文件

        这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是 spring-mybatis.xml

 

1     
2
12
13
14
15
17
18
19 20
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 38
39
40
41
42
43
44 45
46
47
48
49
50 51
52
54
55
56 57

 

 

4.2.3、Log4j的配置

 

      为了方便调试,一般都会使用日志来输出信息,Log4j是的一个开放源代码项目,通过使用Log4j,我们可以控制信息输送的目的地是、文件、组件,甚至是套接口服务器、的事件记录器、 等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。

 

      Log4j的配置很简单,而且也是

下面给出配置文件目录:

log4j.properties

 

1  log4j.rootLogger=INFO,Console,File   2 #定义日志输出目的地为控制台   3 log4j.appender.Console=org.apache.log4j.ConsoleAppender   4 log4j.appender.Console.Target=System.out   5 #可以灵活地指定日志输出格式,下面一行是指定具体的格式   6 log4j.appender.Console.layout = org.apache.log4j.PatternLayout   7 log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n   8    9 #文件大小到达指定尺寸的时候产生一个新的文件  10 log4j.appender.File = org.apache.log4j.RollingFileAppender  11 #指定输出目录  12 log4j.appender.File.File = logs/ssm.log  13 #定义文件最大大小  14 log4j.appender.File.MaxFileSize = 10MB  15 # 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志  16 log4j.appender.File.Threshold = ALL  17 log4j.appender.File.layout = org.apache.log4j.PatternLayout  18 log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n

 

4.2.4、JUnit测试

 

      经过以上步骤(到4.2.2,log4j不配也没影响),我们

4.2.4.1、创建测试用表

 

既然我们需要测试,那么我们就需要建立在数据库中建立一个测试表,这个表建的很简单,SQL语句为:

 

1     DROP TABLE IF EXISTS `user_t`;   2        3     CREATE TABLE `user_t` (   4       `id` int(11) NOT NULL AUTO_INCREMENT,   5       `user_name` varchar(40) NOT NULL,   6       `password` varchar(255) NOT NULL,   7       `age` int(4) NOT NULL,   8       PRIMARY KEY (`id`)   9     ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;  10       11     /*Data for the table `user_t` */  12       13     insert  into `user_t`(`id`,`user_name`,`password`,`age`) values (1,'测试','sfasgfaf',24);

 

4.2.4.2、利用MyBatis Generator自动创建代码

 

参考博文:

       这个可根据表自动创建实体类、MyBatis映射文件以及DAO接口,当然,我习惯将生成的接口名改为IUserDao,而不是直接用它生成的UserMapper。如果不想麻烦就

4.2.4.3、建立Service接口和实现类

目录结构:

下面给出具体的内容:

IUserService.jave

 

1  package com.cn.hnust.service;  2   3 import com.cn.hnust.pojo.User;  4   5 public interface IUserService {  6     public User getUserById(int userId);

 

 

UserServiceImpl.java

 

1     package com.cn.hnust.service.impl;   2        3     import javax.annotation.Resource;   4        5     import org.springframework.stereotype.Service;   6        7     import com.cn.hnust.dao.IUserDao;   8     import com.cn.hnust.pojo.User;   9     import com.cn.hnust.service.IUserService;  10       11     @Service("userService")  12     public class UserServiceImpl implements IUserService {  13         @Resource  14         private IUserDao userDao;  15         @Override  16         public User getUserById(int userId) {  17             // TODO Auto-generated method stub  18             return this.userDao.selectByPrimaryKey(userId);  19         }  20       21     }

 

4.2.4.4、建立测试类

 

 

       测试类        如果测试成功,表示SpringMybatis已经整合成功了。输出信息使用的是Log4j打印到控制台。

 

1     package org.zsl.testmybatis;   2        3     import javax.annotation.Resource;   4        5     import org.apache.log4j.Logger;   6     import org.junit.Before;   7     import org.junit.Test;   8     import org.junit.runner.RunWith;   9     import org.springframework.context.ApplicationContext;  10     import org.springframework.context.support.ClassPathXmlApplicationContext;  11     import org.springframework.test.context.ContextConfiguration;  12     import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  13       14     import com.alibaba.fastjson.JSON;  15     import com.cn.hnust.pojo.User;  16     import com.cn.hnust.service.IUserService;  17       18     @RunWith(SpringJUnit4ClassRunner.class)     //表示继承了SpringJUnit4ClassRunner类  19     @ContextConfiguration(locations = {"classpath:spring-mybatis.xml"})  20       21     public class TestMyBatis {  22         private static Logger logger = Logger.getLogger(TestMyBatis.class);  23     //  private ApplicationContext ac = null;  24         @Resource  25         private IUserService userService = null;  26       27     //  @Before  28     //  public void before() {  29     //      ac = new ClassPathXmlApplicationContext("applicationContext.xml");  30     //      userService = (IUserService) ac.getBean("userService");  31     //  }  32       33         @Test  34         public void test1() {  35             User user = userService.getUserById(1);  36             // System.out.println(user.getUserName());  37             // logger.info("值:"+user.getUserName());  38             logger.info(JSON.toJSONString(user));  39         }  40     }

 

至此,

4.3、整合SpringMVC

         上面已经完成了2大框架的整合,SpringMVC的配置文件单独放,然后在web.xml中配置整合。

4.3.1、配置spring-mvc.xml

配置里面的注释也很详细,在此就不说了,主要是自动扫描控制器,视图模式,注解的启动这三个。

 

1     
2
12
13
14
15
17
18
19
text/html;charset=UTF-8
20
21
22
23
24
26
27
28
29
30
31
32
33
34
35
36
37
38 39
40
42
43
44
45
46
47
48
49 50

 

4.3.2、配置web.xml文件

 

         这里面对spring-mybatis.xml的引入以及配置的spring-mvc的Servlet就是为了完成SSM整合,之前2框架整合不需要在此处进行任何配置。配置一样有详细注释,不多解释了。

web.xml

 

1     
2
6
Archetype Created Web Application
7
8
9
contextConfigLocation
10
classpath:spring-mybatis.xml
11
12
13
14
encodingFilter
15
org.springframework.web.filter.CharacterEncodingFilter
16
true
17
18
encoding
19
UTF-8
20
21
22
23
encodingFilter
24
/*
25
26
27
28
org.springframework.web.context.ContextLoaderListener
29
30
31
32
org.springframework.web.util.IntrospectorCleanupListener
33
34 35
36
37
SpringMVC
38
org.springframework.web.servlet.DispatcherServlet
39
40
contextConfigLocation
41
classpath:spring-mvc.xml
42
43
1
44
true
45
46
47
SpringMVC
48
49
/
50
51
52
/index.jsp
53
54 55

 

4.3.3、测试

 

        至此已经完成了SSM三大框架的整合了,接下来测试一下,如果成功了,那么恭喜你,如果失败了,继续调试吧,

4.3.3.1、新建jsp页面

showUser.jsp   此页面仅输出一下用户名完整的简单流程。

 

1     <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>   2        3        4          5         测试   6          7          8          9         ${user.userName}  10         11     

4.3.3.2、建立UserController类

 

UserController.java  控制器

 

1     package com.cn.hnust.controller;   2        3     import javax.annotation.Resource;   4     import javax.servlet.http.HttpServletRequest;   5        6     import org.springframework.stereotype.Controller;   7     import org.springframework.ui.Model;   8     import org.springframework.web.bind.annotation.RequestMapping;   9       10     import com.cn.hnust.pojo.User;  11     import com.cn.hnust.service.IUserService;  12       13     @Controller  14     @RequestMapping("/user")  15     public class UserController {  16         @Resource  17         private IUserService userService;  18           19         @RequestMapping("/showUser")  20         public String toIndex(HttpServletRequest request,Model model){  21             int userId = Integer.parseInt(request.getParameter("id"));  22             User user = this.userService.getUserById(userId);  23             model.addAttribute("user", user);  24             return "showUser";  25         }  26     }

 

4.3.3.3、部署项目

 

 

输入地址:localhost:8080/项目名称/user/showUser?id=1

至此,SSM三大框架的整合就完成了,在此基础上可再添加其他功能。

源码下载地址:

 (转载注明出处:)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/sharpest/p/5727608.html

你可能感兴趣的文章
c++ 使用深度优先搜索算法计算N位水仙数
查看>>
ERP实施过程中的阻碍,你hold住了吗?
查看>>
mysql常用函数 方法
查看>>
标签语义化是对网页一种最好的表达
查看>>
Ubuntu 14.04 BTRFS 新发现
查看>>
员工激励
查看>>
RESTful API 设计规范
查看>>
MySQL latin1字符编码规则写入中文
查看>>
实现Web应用的高并发、负载均衡配置(1) - JDK环境配置
查看>>
海马玩模拟器修改分辨率DPI和隐藏虚拟按键的方法
查看>>
技术点滴:ng2-admin安装
查看>>
tomcat 7: IllegalArgumentException: taglib defi...
查看>>
AngularJS参数transclude
查看>>
Hibernate使用sql语句查询
查看>>
decisionTree填坑记
查看>>
IOS上路_17-简单示例-数据库
查看>>
tomcat使用delegate分析
查看>>
用"再生龙"Clonezilla 来克隆Linux系统!!
查看>>
pomelo命令行管理pomelo项目
查看>>
基于Spring MVC 的微信用户Controller基类
查看>>