springtest整合junit并结合logback打印mybatis执行详细信息
来源:互联网 发布:遇到网络诈骗400怎么办 编辑:程序博客网 时间:2024/06/07 02:30
解决的问题:1.使用Junit进行单元测试时,加载spring配置文件交由junit单独管理。我只管@Test下的方法。
2.junit进行mybatis事务方法我想打印详细信息,通过日志查看事务是否起作用。
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:cn/rjx/spring/sm/bean.xml"}) //junit启动时加载配置文件 @Componentpublic class EmpAction extends AbstractJUnit4SpringContextTests {@AutowiredEmpService service;@Testpublic void test01(){Emp emp = service.selectById("1");System.out.println(emp);}@Testpublic void test02(){service.accountChange();}}
@Servicepublic class EmpService{//org.log4j包Logger logger=LoggerFactory.getLogger(EmpService.class);@AutowiredEmpDao empDao;public Emp selectById(String id){return empDao.selectById(id);}@Transactional()public void accountChange() {logger.info("-------add---------");empDao.addSalary("1");int a= 10/0;logger.info("-------update---------");empDao.updateSalary("2");}}
@Repositorypublic interface EmpDao {Emp selectById(String id);void addSalary(String id);void updateSalary(String id);}
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.rjx.spring.sm.EmpDao"><select id="selectById" resultType="cn.rjx.spring.sm.Emp">select * from emp where id=#{id}</select><update id="addSalary">update emp set salary='6000' where id=#{id}</update><update id="updateSalary">update emp set salary='4000' where id=#{id}</update></mapper>
bean.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><context:component-scan base-package="cn.rjx.spring.sm"></context:component-scan><bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="123456" /> <!-- <property name="driverClassName" value="com.mysql.jdbc.Driver" /> --> <!-- 配置初始化大小、最小、最大 --><property name="initialSize" value="1" /><property name="minIdle" value="3" /> <property name="maxActive" value="20" /> <!-- 配置获取连接等待超时的时间 --><property name="maxWait" value="60000" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="60000" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name="minEvictableIdleTimeMillis" value="300000" /><property name="validationQuery" value="true" /><property name="testWhileIdle" value="true" /><property name="testOnBorrow" value="false" /><property name="testOnReturn" value="false" /><!-- 配置监控统计拦截的filters --> <property name="filters" value="stat" /> </bean> <!-- ==============mybatis配置=========================================== --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 实例化sqlSessionFactory时需要使用上述配置好的数据源以及SQL映射文件 --> <property name="dataSource" ref="dataSource" /> <property name="mapperLocations" value="classpath:cn/rjx/spring/sm/*Mapper.xml" /> </bean> <!-- 配置扫描器 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!-- 扫描me.gacl.dao这个包以及它的子包下的所有映射接口类 --> <property name="basePackage" value="cn.rjx.spring.sm" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean> <!-- ==============mybatis事务配置=========================================== --><!-- 1.1.配置mybaties的事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- ######################使用注解配置事务############################ --><!-- 开启注解事务 下面的操作取代了它,如果想使用它,那么需要在使用事务的方法上添加@Transactional 使用了它 下面的就不需要了 --> <tx:annotation-driven transaction-manager="transactionManager" /> <!-- ######################使用xml配置事务############################--><!-- 1.2. 配置事务属性 就是对事务管理器进行进行设置 以下创建了一个Advice的通知,对事务管理器进行事务的设置,这里的意思是指对于以下开头的方式使用事务的管理 --><!-- <tx:advice id="txAdvice" transaction-manager="transactionManager">--><!-- <tx:attributes> --><!-- <tx:method name="*" /> --><!-- </tx:attributes> --><!-- </tx:advice> --><!-- 1.3. 配置事务切入点, 再把事务属性和事务切入点关联起来 其实就是把事务应用到具体的类中--> <!-- <aop:config expose-proxy="true">--><!-- <aop:pointcut --><!-- expression="execution(* cn.rjx.spring.sm.EmpService.*(..))" id="txPointcut" />--><!-- <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" /> --><!-- </aop:config> --> </beans>
pom.xml:
<dependencies><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.0.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/junit/junit --><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope></dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-test --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.0.0.RELEASE</version> <scope>test</scope></dependency> <!-- springAop --> <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.0.0.RELEASE</version></dependency><!-- spring事务 --><!-- https://mvnrepository.com/artifact/org.springframework/spring-tx --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.0.0.RELEASE</version></dependency><!-- spring整合mybatis --><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.1</version></dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>3.1.14</version></dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.4</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc 配置数据源需要--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.0.0.RELEASE</version></dependency><!-- 日志打印3个包 --><!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-core --><dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.2.3</version></dependency><!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version></dependency><!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --><dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> <scope>test</scope></dependency> </dependencies>
logback.xml:src目录下
<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"><!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--><property name="LOG_HOME" value="/home" /><!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder></appender><!-- 按照每天生成日志文件 --><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件名--><FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件保留天数--><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder><!--日志文件最大的大小--><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><MaxFileSize>10MB</MaxFileSize></triggeringPolicy></appender><!-- 日志输出级别 --><root level="DEBUG"><appender-ref ref="STDOUT" /></root></configuration>
控制台打印信息:
logback参考:http://www.cnblogs.com/warking/p/5710303.html
阅读全文
0 0
- springtest整合junit并结合logback打印mybatis执行详细信息
- Springtest与junit结合测试注解失败原因
- Springtest与junit结合测试注解失败原因
- SpringTest框架整合JUnit单元测试两种方式
- Springboot 集成mybatis并用Logback并打印sql
- 单元测试代码:SpringTest+JUnit
- 单元测试代码:SpringTest+JUnit
- myBatis接口编程,Junit测试,打印Sql执行过程
- springmvc,mybatis,logback整合相关
- logback打印mybatis sql语句
- Spring回顾之五 —— 测试,JUnit与SpringTest的完美结合
- logback myBatis 3.0+ 如何打印 sql
- 配置logback使mybatis打印sql
- mybatis logback.xml 配置打印sql
- springboot logback 打印mybatis sql日志
- spring-junit中使用 log4j或者logback 打印spring日志
- 新人解惑之—JUnit and SpringTest
- maven+springMVC+myBatis+mysql+junit+slf4j+logback示例代码总结
- 多列布局(column)
- 第一次开通博客
- 动态规划-最长回文子序列
- CentOS6.5下修改mysql密码以及解决MySQL ERROR 1045 (28000):
- 【Linux】fork,vfork 与exec作用详解
- springtest整合junit并结合logback打印mybatis执行详细信息
- error LNK2019: unresolved external symbol "__declspec(dllimport) const CReadUserInfo::`vftable'" (__
- BZOJ1688 [Usaco2005 Open]DiseaseManangement 疾病管理
- lamp配置域名
- script标签
- 【bzoj4443】【[Scoi2015]小凸玩矩阵】二分+二分图最大匹配
- ViewPager无限轮播
- @ManagedBean源码翻译
- C#编程入门15_简单算法