1.根据日志分析,spring junit默认是自动回滚,不对数据库做任何的操作。

18:16:57.648 [main] DEBUG o.s.j.d.DataSourceTransactionManager - Switching JDBC Connection [net.sf.log4jdbc.sql.jdbcapi.ConnectionSpy@481d6644] to manual commit
18:16:57.649 [main] DEBUG o.s.t.c.t.TransactionalTestExecutionListener - No method-level @Rollback override: using default rollback [true] for test context [DefaultTestContext@4d95d2a2 testClass = TransDispatchingServiceTest, testInstance = com.autoyol.service.trans.TransDispatchingServiceTest@54b48b, testMethod = testCancelCauseNoSupport@TransDispatchingServiceTest, testException = [null], mergedContextConfiguration = [MergedContextConfiguration@3b088d51 testClass = TransDispatchingServiceTest, locations = '{classpath:conf/applicationContext.xml}', classes = '{}', contextInitializerClasses = '[]', activeProfiles = '{}', contextLoader = 'org.springframework.test.context.support.DelegatingSmartContextLoader', parent = [null]]].
18:16:57.649 [main] INFO o.s.t.c.t.TransactionalTestExecutionListener - Began transaction (6) for test context [DefaultTestContext@4d95d2a2 testClass = TransDispatchingServiceTest, testInstance = com.autoyol.service.trans.TransDispatchingServiceTest@54b48b, testMethod = testCancelCauseNoSupport@TransDispatchingServiceTest, testException = [null], mergedContextConfiguration = [MergedContextConfiguration@3b088d51 testClass = TransDispatchingServiceTest, locations = '{classpath:conf/applicationContext.xml}', classes = '{}', contextInitializerClasses = '[]', activeProfiles = '{}', contextLoader = 'org.springframework.test.context.support.DelegatingSmartContextLoader', parent = [null]]]; transaction manager [org.springframework.jdbc.datasource.DataSourceTransactionManager@491cceb4]; rollback [true]

2.事务配置和spring注入

package com.autoyol.service.trans;

import java.util.Map;

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 org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional; import com.autoyol.service.trans.impl.TransDispatchingServiceImpl; /**
* @author xxx
* @function
* @date 2016年4月23日
* @version
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:conf/applicationContext.xml")
@Transactional
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
public class TransDispatchingServiceTest {
@Autowired
private TransDispatchingServiceImpl transDispatchingServiceImpl; //无面向接口编程,单独的类。
// @Autowired
// @Qualifier("testtestddd")
// private TransDispatchingServiceImpl testtestddd; //要么单纯实现类,要么面向接口注入。 @service("testtestddd") // @Autowired
// private TransDispatchingService transDispatchingService; //面向接口编程 //
// @Autowired
// private TransDispatchingMapper transDispatchingMapper;
Long orderNo = 449230224061l;
Integer carNo = 431319914;
@Test
public void testAddCarSelectUpgrade(){
int i = transDispatchingServiceImpl.addCarSelectUpgrade(orderNo);
System.out.println("添加车辆升级条件i="+i);
} /*@Test
public void testA(){
Map<String,Object> reqMap = new HashMap<String,Object>();
reqMap.put("orderNo", orderNo);
reqMap.put("renterNo", 123);
reqMap.put("rentTime", 201611l);
reqMap.put("revertTime", 201612l);
reqMap.put("ownerNo", 456);
reqMap.put("carNo", carNo);
reqMap.put("rentAmt", 300);
reqMap.put("insurance", 300);
reqMap.put("renterSt", 21);
reqMap.put("ownereSt", 21); int i = transDispatchingMapper.addTransDispatchingInitData(reqMap);
System.out.println("i="+i);
}*/ @Test
public void testAddTransDispatchingInitData(){
int i = transDispatchingServiceImpl.addTransDispatchingInitData(orderNo, 123, 201611l, 201612l, 456, carNo, 300, 300, 21, 21);
System.out.println("添加调度初始化数据i="+i);
}
@Test
public void testUpdateTransDispatchingStatus(){
int i = transDispatchingServiceImpl.updateTransDispatchingStatus(orderNo, carNo, 2, null, 1);
System.out.println("修改调度状态i="+i);
}
@Test
public void testQueryTransDispatchingStatus(){
System.err.println("transDispatchingServiceImpl="+transDispatchingServiceImpl);
// System.err.println("transDispatchingService="+transDispatchingService);
Map map = transDispatchingServiceImpl.queryTransDispatchingStatus(orderNo, carNo);
System.err.println("查询当前的调度状态:map="+map);
}
@Test
public void testRefuseCauseNoSupport(){
int i = transDispatchingServiceImpl.refuseCauseNoSupport(orderNo, carNo);
System.out.println("调度原因i="+i);
}
@Test
public void testRefuseCauseLessTime(){
int i = transDispatchingServiceImpl.refuseCauseLessTime(orderNo, carNo);
System.out.println("调度原因i="+i);
}
@Test
public void testCancelCauseNoSupport(){
int i = transDispatchingServiceImpl.cancelCauseNoSupport(orderNo, carNo);
System.out.println("调度原因i="+i);
}
@Test
public void testCancelCauseLessTime(){
int i = transDispatchingServiceImpl.cancelCauseLessTime(orderNo, carNo);
System.out.println("调度原因i="+i);
}
@Test
public void testManualCauseNoSupport(){
int i = transDispatchingServiceImpl.manualCauseNoSupport(orderNo, carNo);
System.out.println("调度原因i="+i);
}
@Test
public void testAutoCauseLessTime(){
int i = transDispatchingServiceImpl.autoCauseLessTime(orderNo, carNo);
System.out.println("调度原因i="+i);
}
@Test
public void testUpdateTransDispatchingSucc(){
int i = transDispatchingServiceImpl.updateTransDispatchingSucc(orderNo, carNo, 77, 88, 99, 100);
System.out.println("调度成功i="+i);
}
}

spring测试junit事务管理及spring面向接口注入和实现类单独注入(无实现接口),实现类实现接口而实现类单独注入否则会报错。的更多相关文章

  1. 程序员笔记|Spring IoC、面向切面编程、事务管理等Spring基本概念详解

    一.Spring IoC 1.1 重要概念 1)控制反转(Inversion of control) 控制反转是一种通过描述(在java中通过xml或者注解)并通过第三方去产生或获取特定对象的方式. ...

  2. Spring中的事务管理

    事务简介: 事务管理是企业级应用程序开发中必不可少的技术,用来确保数据的完整性和一致性 事务就是一系列的动作,它们被当作一个单独的工作单元.这些动作要么全部完成,要么全部不起作用 事务的四个关键属性( ...

  3. Spring声明式事务管理(基于注解方式实现)

    ----------------------siwuxie095                                 Spring 声明式事务管理(基于注解方式实现)         以转 ...

  4. Spring声明式事务管理(基于XML方式实现)

    --------------------siwuxie095                             Spring 声明式事务管理(基于 XML 方式实现)         以转账为例 ...

  5. Spring编程式事务管理

    --------------------siwuxie095                                 Spring 编程式事务管理         以转账为例         ...

  6. Spring框架的事务管理之编程式的事务管理(了解)

    1. 说明:Spring为了简化事务管理的代码:提供了模板类 TransactionTemplate,所以手动编程的方式来管理事务,只需要使用该模板类即可!!2.手动编程方式的具体步骤如下: 1.步骤 ...

  7. XML方式实现Spring声明式事务管理

    1.首先编写一个实体类 public class Dept { private int deptId; private String deptName; public int getDeptId() ...

  8. 框架源码系列十一:事务管理(Spring事务管理的特点、事务概念学习、Spring事务使用学习、Spring事务管理API学习、Spring事务源码学习)

    一.Spring事务管理的特点 Spring框架为事务管理提供一套统一的抽象,带来的好处有:1. 跨不同事务API的统一的编程模型,无论你使用的是jdbc.jta.jpa.hibernate.2. 支 ...

  9. Spring Cloud 分布式事务管理

    Spring Cloud 分布式事务管理 在微服务如火如荼的情况下,越来越多的项目开始尝试改造成微服务架构,微服务即带来了项目开发的方便性,又提高了运维难度以及网络不可靠的概率. Spring Clo ...

随机推荐

  1. kafka 面试题 无答案

    kafka节点之间如何复制备份的? kafka消息是否会丢失?为什么? kafka最合理的配置是什么? kafka的leader选举机制是什么? kafka对硬件的配置有什么要求? kafka的消息保 ...

  2. [Linux基础环境/软件]Linux下安装resin web服务器(涉及gcc、jdk环境部署)

    由于Ubuntu自带是没有jdk和gcc编译器的,而安装resin需要C编译器和jdk的支持,而且resin本身是java写的.另外我本身的网站是zip打包的,所以linux也要安装了gcc.jdk. ...

  3. css部分样式资料

    1. css字体 Lato,"Helvetica Neue","Segoe UI",Helvetica,Arial,sans-serif

  4. 【转】Graphics 关于呈现质量与合成模式

    GDI+相关的作图,每种语言都有其自身的封装类,但本质上是一样的,下面这篇文章写的非常好,对于C#的Graphics类也是使用的,所以转载了,原文在这里: http://www.cnblogs.com ...

  5. Hbase 学习(二)补充 自定义filter

    本来这个内容是不单独讲的,但是因为上一个页面太大,导致Live Writer死机了,不能继续编辑了,所以就放弃了 这里要讲的是自定义filter,从FilterBase继承 public class ...

  6. spring mvc中关于url中传递中文乱码的解决方法

    在传值过程中,也是乱码出现的频繁地.先不说到底是什么场景了,通常常用的方案有如下几个 配置指定的filter <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> < ...

  7. 数据框排序 data.frame order

    # sorting examples using the mtcars datasetattach(mtcars) # sort by mpgnewdata <- mtcars[order(mp ...

  8. Mac下Pycharm导入Python包

    1.png   2.png   3.png

  9. 单表多个Count 条件进行查询拼接小妙用

    单表多数据进行拼接 DROP table if EXISTS tmp_table; CREATE TEMPORARY TABLE tmp_table ( 创建临时表 SELECT p1q04,p2q0 ...

  10. e838. 使JTabbedPane中的卡片能用按键的方式选取

    Setting a mnemonic on a tab allows the tab to be selected with a keystroke. For example, if the mnem ...