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. 黑马day11 不可反复度&amp;解决方式

    1.演示不可反复读 A窗体: 事务为数据库默认的级别:repeatable read 开启事务:start transaction; B窗体: 设置事务级别为:set session transact ...

  2. Hibernate 查询说明

    1.Criteria setFetchSize实际上与分页操作并没有关系,它的作用是在查询中进行分批数据返回,其中的值就是每次分批查询的记录数,主要是为了提高查询性能的. 举个例子来说:如果你这次查询 ...

  3. eclipse多个项目保存到gitee上一个仓库中

    自己练习创建到多个项目,想同步到gitee上一个仓库中. 1. 首先在gitee上创建项目springtest 2. 在eclipse默认项目存放到地方创建文件夹springtest,用来同步gite ...

  4. JS事件对象,筋斗云导航练习,跟随鼠标练习,放大镜练习,进度条练习

    JS事件对象,筋斗云导航练习,跟随鼠标练习,放大镜练习,进度条练习 btn.onclick = function(event) { 语句 } 其中event就是事件对象,在这个方法中指向的对象是onc ...

  5. 两个Map融合

    package com.thunisoft.maybee.engine.utils; import java.util.HashMap; import java.util.Map; /** * Map ...

  6. netable 禁用拖动

    nestable在点击的时候,有一个拖动的状态被触发,会导致你给nestable上加的链接都会无效. 只要在最外层的li里加入一个class为:dd-nodrag,就不会被触发了.然后你在子菜单中就可 ...

  7. 【转】PyCharm LicenseServer 破解

    在自己的云平台上部署了IntelliJIDEALicenseServer服务,理论上http://www.jetbrains.com的产品都可以使用,不过目前只测试了PyCharm. 大家也知道,Py ...

  8. Development Tools

    Introduction Even Chris created his article of Useful Reference Books ages ago I just bumped into it ...

  9. 【转】Windows 7 API Internet Connection Sharing(ICS) 与 Wireless Hosted Network构建本地AP

    原文:http://hi.baidu.com/ritrachiao/item/bf7715e6bb8cb3a0c10d75be [此刻我要大大地记录一下!] 这个折腾了我好几天的Windows 7 A ...

  10. Loss is its own Reward: Self-Supervision for Reinforcement Learning

    作者用action, reward, state等当做lalbel,进行有监督训练.