配置文件
- Maven依赖
<!-- JUNIT -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!--test-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.0</version>
</dependency>
- application.properties
需要将spring.datasource.url
,spring.datasource.username
,spring.datasource.password
修改成自己的数据库链接,数据库用户和数据库密码
server.port=8090
mybatis.mapperLocations=classpath:mapping/*.xml
#数据库jdbc配置
spring.datasource.name=seckil
spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
########################## druid配置 ##########################
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
# 校验SQL,Oracle配置 spring.datasource.validationQuery=SELECT 1 FROM DUAL,如果不配validationQuery项,则下面三项配置无用
spring.datasource.validationQuery=SELECT 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
spring.datasource.useGlobalDataSourceStat=true
- applicationContext.xml
通过<context:property-placeholder location="classpath:application.properties"/>
指定properties文件,后面会用到application.properties
配置文件里面的变量
注意:base-package
,typeAliasesPackage
,mapperLocations
对应的的值需要适配成自己项目对应的值
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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:property-placeholder location="classpath:application.properties"/>
<!--需要扫描的包的路径-->
<context:component-scan base-package="com.zemo.seckill"></context:component-scan>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${spring.datasource.driver-class-name}" />
<property name="url" value="${spring.datasource.url}" />
<property name="username" value="${spring.datasource.username}" />
<property name="password" value="${spring.datasource.password}" />
</bean>
<!-- 配置会话工厂bean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource" />
<!-- 给实体类取别名,这样配置可以只需要写类名,不需要带类完整路径,简化映射文件中的返回类型resultType书写(可能其他地方还有用到) -->
<property name="typeAliasesPackage" value="com.zemo.seckill.dataobject" />
<!--mapper文件路径-->
<property name="mapperLocations" value="classpath:mapping/*.xml "/>
</bean>
<!-- 配置自动扫描对象关系映射文件 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定会话工厂,如配置中只有一个则可省去 -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<!-- 指定要自动扫描的包,不带类名,表示扫描工程下所有在这一层下面的接口,所以为了方便,尽量把所有映射接口都放在同一包下 -->
<property name="basePackage" value="com.zemo.seckill" />
</bean>
</beans>
Service接口
package com.fly.cloudpay.service.user;
import com.fly.cloudpay.dao.entity.PayUserDO;
import java.util.Map;
/**
* @Title: 缴费用户信息--Service
*/
public interface PayUserService {
/**
* @Title: 新增用户信息
* @methodName: add
* @param payUserDO
* @return void
* @Description:
*
* @author: FLY
* @date: 2018-03-02 15:15
*/
void add(PayUserDO payUserDO);
}
Service实现类
package com.newcapec.fly.service.user.impl;
import com.newcapec.fly.constant.ControllerConstant;
import com.newcapec.fly.dao.PayUserDao;
import com.newcapec.fly.dao.entity.PayUserDO;
import com.newcapec.fly.service.user.PayUserService;
import com.newcapec.util.map.MapBeanTransUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.Map;
/**
* @version V1.0
* @Title: 缴费用户信息--Service实现层
*/
@Service
public class PayUserServiceImpl implements PayUserService {
private static final Logger log = LoggerFactory.getLogger(PayUserServiceImpl.class);
@Autowired
private PayUserDao payUserDao;
/**
* @param payUserDO
* @return void
* @Title: 新增缴费用户信息
* @methodName: add
* @Description:
* @author: FLY
* @date: 2018-03-02 15:15
*/
@Override
public void add(PayUserDO payUserDO) {
log.info("【新增缴费用户信息】,接收参数:{}", payUserDO);
payUserDao.save(payUserDO);
}
}
Spring测试类
@ContextConfiguration
注解需要指定自己的配置文件applicationContext.xml
package service;
import com.fly.cloudpay.dao.PayUserDao;
import com.fly.cloudpay.dao.entity.PayUserDO;
import com.fly.cloudpay.service.user.PayUserService;
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;
/**
* @Title:
* @ClassName: service.ServiceTest.java
* @Description:
*
* @Copyright 2016-2018 - Powered By 研发中心
* @author: FLY
* @date: 2018-03-01 11:35
* @version V1.0
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class ServiceTest {
@Autowired
PayUserService payUserService;
@Autowired
private PayUserDao payUserDao;
@Test
public void payUserAddTest(){
PayUserDO payUserDO = new PayUserDO();
payUserDO.setPayUserIdNum("123456");
payUserDO.setPayUserName("FLY");
payUserDO.setBindTime(new java.util.Date());
payUserService.add(payUserDO);
}
}