前言:
本文为小白爬坑指南,主要作用是防止自己失忆 (逃
零:创建Web工程
1.File -> new project -> maven 选择 mavne-webapp 模板 idea会生成一个基础的web工程目录结构
2.在pom文件中增加相应的依赖包
壹:集成SpringMVC
在web.xml 中引入 SpringMVC
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext-mvc.xml
1
springMVC
/
SpringMVC 配置如下:
1.开启扫描,指定扫描目录
指定目录到Controller包的目的是预防SpringMVC和Spring扫描冲突
2.开启静态资源访问
3.配置好之后创建Controller以及jsp文件
@Controller
public class TestController {
@RequestMapping("index")
public String index(){
return "index";
}
}
4.配置好tomcat运行环境
5.启动工程
6.SpringMVC集成完毕
貳:集成Spring MyBatis
1.Dao匹配/Bean封装
2.注解事务处理
applicationContext-database.xml 数据源配置/mapping文件和dao映射
classpath:/config/jdbc-mysql.properties
applicationContext-service.xml 事务管理
坑1 -- 如果SpringMVC的扫描路径包含Service扫描路径,由于加载顺序,Service会在SpringMVC加载时在Spring中生成无事务的bean 在事务扫描时由于bean已存在则不再重新创建,导致事务不生效
坑2 -- idea中的Spring框架context配置应如下,否则框架无法正常加载
TestDEMO:
单元测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:application-service.xml"})
public class TestUser {
@Autowired
UserService userService;
@Test
@Ignore
public void testAddUser() {
UserModel user = new UserModel();
user.setName("aaa");
user.setPassword("bbb");
Integer id = userService.addUser(user);
Assert.assertNotNull(id);
}
}
Dao mapper文件
insert into user(name,password) values(#{name},#{password})
SELECT LAST_INSERT_ID();
注:成功整合 mapper文件相当于Dao层接口的实现类 在Service层调用时可进行注解注入
附录:附配置文件
1.maven: pom.xml
4.0.0
com.coang
java
war
1.0-SNAPSHOT
ssm Maven Webapp
http://maven.apache.org
1.8
4.3.10.RELEASE
3.3.0
1.7.7
1.2.17
org.springframework
spring-context
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-aop
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.mybatis
mybatis-spring
1.2.3
org.mybatis
mybatis
${mybatis.version}
mysql
mysql-connector-java
5.1.29
commons-dbcp
commons-dbcp
1.4
com.microsoft.sqlserver
mssql-jdbc
6.1.0.jre8
test
javax.servlet
servlet-api
2.5
provided
redis.clients
jedis
2.9.0
jar
compile
org.springframework.data
spring-data-redis
1.8.6.RELEASE
org.springframework
spring-test
${spring.version}
test
junit
junit
4.12
test
org.codehaus.jackson
jackson-mapper-asl
1.9.13
com.alibaba
fastjson
1.2.35
javax.servlet
jstl
1.2
log4j
log4j
${log4j.version}
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
WebFramwork-ssm
2.web: web.xml
WebFramwork-ssm
contextConfigLocation
classpath:applicationContext-database.xml,
classpath:applicationContext-service.xml
log4jConfigLocation
classpath:config/log4j.properties
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
org.springframework.web.context.ContextLoaderListener
org.springframework.web.util.IntrospectorCleanupListener
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:applicationContext-mvc.xml
1
springMVC
/
/jsp/index.jsp
15
3.Spring mvc:applicationContext-mvc.xml
4.Spring:applicationContext-service.xml/applicationContext-database.xml
applicationContext-service.xml - 事务管理 注解事务
applicationContext-database.xml - 管理数据库连接/dao层映射
classpath:/config/jdbc-mysql.properties
ps_0 Spring配置文件是可以用单个xml配置,只是个人喜好将配置分开 方便理解
ps_1 目录结构
WebFramwork-ssm/
│ pom.xml
│ tree.txt
│ WebFramwork-ssm.iml
│
└─src
└─main
├─java
│ └─com
│ └─coang
│ ├─common
│ ├─controller
│ │ TestController.java
│ │
│ ├─dao
│ │ UserDao.java
│ │
│ ├─modal
│ │ UserModel.java
│ │
│ └─service
│ │ UserService.java
│ │
│ └─impl
│ UserServiceImpl.java
│
├─resources
│ │ applicationContext-database.xml
│ │ applicationContext-mvc.xml
│ │ applicationContext-service.xml
│ │
│ ├─config
│ │ jdbc-mysql.properties
│ │ jdbc-sqlserver.properties
│ │ log4j.properties
│ │
│ └─mapper
│ UserMapper.xml
│
└─webapp
│ index.jsp
│
└─WEB-INF
│ web.xml
│
└─jsp
index.jsp