import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.transaction.annotation.Transactional;
//使用@RunWith(SpringJUnit4ClassRunner.class),才能使测试运行于Spring测试//环境
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration 注解有以下两个常用的属性:
//locations:可以通过该属性手工指定 Spring 配置文件所在的位置,可以指定一个或多个 Spring 配置文件
//inheritLocations:是否要继承父测试类的 Spring 配置文件,默认为 true
@ContextConfiguration(locations={"classpath:spring/spring-config-business.xml"})
public class TestRisk extends AbstractTransactionalJUnit4SpringContextTests{
@Autowired
private IRiskBO bo;
@Test
@Transactional
@rollback(false)
public void Test()
{
Risk risk = bo.findRiskById("CW01", true);
System.out.println(risk.getName()+":"+risk.getCode());
}
}
说明:
@Test
@Transactional
@Rollback(false)
不同写法,内部执行的源码也不一样:
//class load
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
//file load
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("src/main/webapp/WEB-INF/applicationContext.xml");
再说一下Spring提供的JUnit框架扩展:
1. AbstractSpringContextTests:spring中使用spring上下文测试的Junit扩展类,我们一般不会使用这个类来进行单元测试,它是spring内部设计使用到的类
2. AbstractDependencyInjectionSpringContextTests:这是AbstractSpringContextTests的直接子类,支持依赖spring上下文的测试类,这个类不支持事务。
3. AbstractTransactionalSpringContextTests:这是 AbstractDependencyInjectionSpringContextTests的直接子类,这个类一般应用在事务相关的测试中,一旦完成每个测试它就会正常地回滚事务,不会真正更新数据库,若要手动设置事务相关操作,你可以重载onSetUpInTransaction和 onTearDownInTransaction方法,以便手工开始并提交事务,或者调用setComplete()方法。这个类也可以在没有事务的情况下,使用这个类。
4. AbstractTransactionalDataSourceSpringContextTests:这是 AbstractTransactionalSpringContextTests的直接子类,它使用了Spring的基于JDBC的 jdbcTemplate工具类,支持数据库级别的事务。
你的TestCase Class必须继承的是上述四个AbstractXXXSpringContextTests中的其中一个。一般我们继承SpringJUnit4ClassRunner或者利用注解声明@RunWith(SpringJUnit4ClassRunner.class)
参考网站:
http://zxf-noimp.iteye.com/blog/854556
http://chenzehe.iteye.com/blog/1468130
分享到:
相关推荐
标题 "JSF+Spring+Hibernate+SQL+ojdbc6 jar包" 涉及到的是一个集成开发环境的必备组件,这些技术都是Java Web开发中的关键部分。让我们逐一解析它们的核心概念和作用。 1. **JavaServer Faces (JSF)**:JSF 是一个...
标签中的“java,ssh,te”可能代表Java、Struts+Spring+Hibernate(SSH)组合和一些技术交流(TE)的含义。SSH曾是Java Web开发中流行的组合,但随着Spring MVC的崛起,SSH逐渐被SSM(Spring MVC、Spring、MyBatis)...
【标题】"jdon+structs+hibnate示例" 涉及到的是一个融合了三个核心技术的Java Web开发实例。jdon是一个国内开源的框架,它借鉴了Spring框架的设计理念,但针对中国的开发环境和需求进行了优化。在这个示例中,jdon...
在IT行业中,"Server+Hibernate+Spring"是一个常见的技术栈,尤其在企业级应用开发中被广泛应用。这个组合,也被称为SSH(Spring、Struts、Hibernate),是Java领域的一个经典模型,用于构建高效、可扩展的Web应用...
此外,Struts2可以与Spring进行深度集成,通过Spring插件,Action类可以直接由Spring管理,实现依赖注入,提升代码的可测试性和可维护性。 Spring框架则扮演了容器的角色,管理着应用程序中的所有bean。它提供了AOP...
SSH整合是指Spring、Struts和Hibernate这三个开源框架的集成,它们分别是Java企业级应用中用于控制层、表现层和持久层的重要组件。Spring提供依赖注入和面向切面编程,Struts处理HTTP请求和视图展示,Hibernate则...
首先,Spring框架作为Java领域中的主流轻量级框架,提供了丰富的功能模块,包括依赖注入(DI)、面向切面编程(AOP)以及Spring Security,后者用于权限管理和认证。在本项目中,Spring Security被用来实现角色和...
这里提到的"hibernate+spring 所用到的jar包"是针对这两个框架的基础构建,用于搭建整合环境。让我们深入探讨一下Hibernate和Spring框架的核心功能以及它们所需的jar包。 Hibernate是一个强大的对象关系映射(ORM)...
`JUnit` 是Java编程语言中最流行的单元测试框架,它允许开发者编写可重复运行的测试用例,以验证代码的正确性。`Spring` 和 `Hibernate` 分别是Java企业级应用中的两大支柱,`Spring` 提供了一个强大的依赖注入容器...
技术:myeclipse+spring+struts2+hibnate+lunce+poi+ztree+mysql+jbpm 功能:基本信息的录入(poi导入)包括省、市、区,菜单导航树形结构,取派业务,lunce的信息检索,一件上传功能,工单的接收,等。。。。。
- 版本2.5.6:这是一个较旧但稳定版本的Spring,它支持依赖注入(DI),面向切面编程(AOP),以及对Java配置的支持,使得应用程序更易于管理和测试。 - 核心特性:包括Bean工厂,IoC容器,以及AOP代理,这些都是...
在IT行业中,Spring框架是Java领域最常用的轻量级应用框架之一,它为开发者提供了强大的依赖注入、AOP(面向切面编程)以及模块化的功能。而Hibernate则是一款优秀的对象关系映射(ORM)框架,它简化了数据库操作,...
Spring框架则是一个全面的企业级应用框架,它不仅提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,还集成了其他功能如事务管理、数据访问、远程服务等。在这个系统中,Spring可以用来管理Struts中的Action...
3. **Spring**:是一个全面的企业级应用开发框架,提供了DI(依赖注入)和AOP(面向切面编程)功能,以及事务管理、数据访问集成、Web应用等功能。Spring的核心组件包括Spring Core、Spring Beans、Spring AOP等。在...
Structs1.2框架、Spring2.0和Hibernate3.2以及集成教案,自己整合的,花了将近俩小时,很适用,希望对大家有用!开发M工具用滴是yEclipse 5.5.1 GA
SessionFactory是线程安全的,用于创建Session对象,Session是工作单元,负责执行CRUD操作,Query则用于执行SQL查询或HQL(Hibernate查询语言)。 在SpringMVC中集成Hibernate,通常我们会使用Spring的数据访问/...
struts2,spring,css.ibaties.jquery .jdk,javascript api
4. **实体类注解**:在需要缓存的实体类上添加`@Cacheable`和`@Cache`注解,指定缓存区域。 ```java @Entity @Table(name = "your_table") @Cacheable @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) ...
7. **Spring**:虽然标题中没有特别提到Spring,但在SSH框架中,Spring通常负责管理Bean(如Action、Service、DAO等)的生命周期和依赖注入,使得各组件之间解耦,易于测试和维护。 8. **安全性**:图片上传过程中...
3. 关联:一对一、一对多、多对一、多对多关系的映射,通过@OneToOne、@OneToMany、@ManyToOne、@ManyToMany注解实现。 五、操作数据库 1. 插入:使用Session的save()或saveOrUpdate()方法将对象持久化到数据库。 2...