1.配置POM.xml文件 ,配置项目所需jar
2.配置WEB.xml:
配置spring监听器
1
2
3
4
5
6
7
8
|
< context-param > < param-name >contextConfigLocation</ param-name > < param-value >classpath:application-context.xml</ param-value > </ context-param > < listener > < listener-class >org.springframework.web.context.ContextLoaderListener</ listener-class > </ listener > |
3.创建anotation.xml配置文件
<!-- spring扫描 @service -->
1
2
3
4
5
|
< context:component-scan base-package = "cn.liu" > < context:exclude-filter type = "annotation" expression = "org.springframework.stereotype.Controller" /> </ context:component-scan > < context:annotation-config /> |
4. 创建jdbc.properties和jdbc.xml,并配置:
1
2
3
4
5
6
7
8
9
10
11
12
|
driverClass=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/shop?characterEncoding=UTF-8 user=root password= <!-- c3p0--> < bean id = "dataSource" class = "com.mchange.v2.c3p0.ComboPooledDataSource" > < property name = "driverClass" value = "${driverClass}" /> < property name = "jdbcUrl" value = "${jdbcUrl}" ></ property > < property name = "user" value = "${user}" /> < property name = "password" value = "${password}" /> </ bean > |
5.配置property.xml文件,读取JDBC配置
1
2
3
4
5
6
7
8
|
< bean class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" > < property name = "locations" > < list > <!-- JDBC的配置 --> < value >classpath:properties/jdbc.properties</ value > </ list > </ property > </ bean > |
6.配置mybatis.xml文件
1
2
3
4
5
6
7
8
9
10
11
|
<!-- mybatis org.mybatis.spring.SqlSessionFactoryBean 配置 --> < bean id = "sqlSessionFactory" class = "org.mybatis.spring.SqlSessionFactoryBean" > < property name = "dataSource" ref = "dataSource" /> < property name = "mapperLocations" value = "classpath:cn/liu/croe/dao/*.xml" /> < property name = "typeAliasesPackage" value = "cn.liu.croe.bean" ></ property > </ bean > <!-- 扫包 --> < bean class = "org.mybatis.spring.mapper.MapperScannerConfigurer" > < property name = "basePackage" value = "cn.liu.croe.dao" /> </ bean > |
7.事务管理transation.xml:
1
2
3
4
5
6
7
|
<!-- spring 事务 --> < bean id = "transactionManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" > < property name = "dataSource" ref = "dataSource" /> </ bean > <!-- 开启事务注解 --> < tx:annotation-driven transaction-manager = "transactionManager" /> |
8.UserInfoDAO.xml
1
2
3
4
5
6
7
8
9
10
|
<? xml version = "1.0" encoding = "UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> < mapper namespace = "cn.liu.croe.dao.UserInfoDAO" > < insert id = "add" parameterType = "UserInfo" > insert into user_info (user_name,user_sex) values(#{userName},#{userSex}) </ insert > </ mapper > |
9.事务管理注释:@Transactional
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.liu.croe.bean.UserInfo;
import cn.liu.croe.dao.UserInfoDAO;
import cn.liu.croe.service.IUserInfoService;
@Service
@Transactional
public class UserInfoServiceImpl implements IUserInfoService {
@Autowired
private UserInfoDAO userdao;
public void addUser(UserInfo user) {
int i = userdao.add(user);
System.out.println(i);
throw new RuntimeException("运行时异常");
}
}
10.测试类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package cn.shop.userinfo; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import cn.liu.croe.bean.UserInfo; import cn.liu.croe.service.IUserInfoService; @RunWith (SpringJUnit4ClassRunner. class ) @ContextConfiguration (locations = "classpath:application-context.xml" ) public class UserTest { @Autowired private IUserInfoService service; @Test public void testAdd() { UserInfo user = new UserInfo(); user.setUserName( "秋香" ); user.setUserSex( "女" ); service.addUser(user); } } |