`
yschen
  • 浏览: 7067 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring自动注入及整合测试

阅读更多
新项目用了Spring2.5的@Autowired方式,大大的节省了配置文件;下面来试一试:

Dao层,这里省去了所有的getter和setter方法,以后不用拉这么长了:)
@Repository
public class UserDaoImpl extends GenericDaoJpa<User, Long> implements UserDao {

	public UserDaoImpl() {
		super(User.class);
	}
}


Service层,这里省去了所有的getter和setter方法,以后不用拉这么长了:)
@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements IUserService {
	@Autowired
	private UserDao userDao;
	@Autowired
	private GroupDao groupDao;
}


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:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">

	<!-- 数据源配置  -->
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>${DB.DRIVERCLASSNAME}</value>
		</property>
		<property name="url">
			<value>${DB.URL}</value>
		</property>
		<property name="username">
			<value>${DB.USERNAME}</value>
		</property>
		<property name="password">
			<value>${DB.PASSWORD}</value>
		</property>
	</bean>

	<bean id="placeholderProperties"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<!--
				<value>classpath:config.properties</value>
				-->
				<value>file:${user.home}/config.properties
				</value>
			</list>
		</property>
		<property name="ignoreResourceNotFound" value="false" />
	</bean>

	<!-- JPA EntityManagerFactoryBean for EntityManager -->
	<bean id="entityManagerFactory"
		class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="jpaVendorAdapter">
			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
				<property name="showSql" value="true" />
				<property name="generateDdl" value="true" />
				<property name="databasePlatform" value="org.hibernate.dialect.DB2Dialect" />
			</bean>
		</property>
	</bean>

	<!-- Transaction manager for JPA -->
	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory">
			<ref bean="entityManagerFactory" />
		</property>
	</bean>

	<tx:annotation-driven transaction-manager="transactionManager" />

	<!-- Spring Annotation -->
	<context:annotation-config />

	<!-- Spring auto scan base package -->
	<context:component-scan base-package="com.test" /> <-- 这里是包名,还有其它参数可配,这里就不详解了-->

</beans>


看这里的spring配置多简,真是为我们省却了不少的配置。
另外再看我们的测试类:
@RunWith(SpringJUnit4ClassRunner.class)   
@ContextConfiguration(locations = {"classpath:core-context.xml"})   
public class ChatTest extends TestCase {
	
	
	
	@Autowired
	private IUserService userService;
	
	@Test
	private void testSpring(){
		List<User> userList = userService.getAllUser();
		if(userList!=null){
			System.out.println(userList.size());
		}
	}


这样就可以了, 测试类也可以注入了,而且不用context.getBean()的方式去取了,多方便; 不过这里要注意的一个地方是,JUnit test如果低版本的话要升级到4.6,另外我的4.8是不行的,后来我改为4.6就可以了。
分享到:
评论

相关推荐

    spring-Hibernate整合代码测试过程

    总结起来,"spring-Hibernate整合代码测试过程"涉及了Spring框架的依赖注入、事务管理、以及与Hibernate的整合,同时也涵盖了Hibernate的实体映射、DAO设计和事务控制。通过这个过程,我们可以构建出一个高效、健壮...

    SSH(struts2,Hibernate,Spring)整合及测试亲测可用

    在"SSH整合及测试亲测可用"的项目中,这三大框架被集成在一起,以实现高效的后端逻辑处理。通常,Struts2负责处理HTTP请求,调用业务逻辑;Hibernate则负责数据库操作;而Spring则作为整体的粘合剂,管理它们之间的...

    Spring3整合Hibernate4测试Demo

    在这个Demo中,可能会使用@Transactional注解来声明事务边界,由Spring自动管理事务的开始、提交或回滚。 8. **JDBC DataSource配置**:在Spring配置文件中定义DataSource,提供数据库连接池,如Apache Commons ...

    springmvc3+spring+mybatis3整合项目 注解实现

    Spring框架的核心功能之一是依赖注入(DI),它通过@Autowired注解可以自动匹配并注入所需的服务实例,降低了组件之间的耦合度。在本项目中,Spring会自动扫描指定的包,找到带有@Service注解的类,并通过@Autowired...

    ZK+spring+hibernate的整合

    Spring可以通过ZK的@Wire注解自动将Bean注入到ZK组件中。 4. **配置ZK-Spring**:需要引入ZK-Spring的库,这是一个连接ZK和Spring的桥梁,它提供了Spring的ApplicationContext到ZK Session的绑定,使得ZK组件可以...

    Spring与Struts 2整合.zip

    整合Spring和Struts 2的主要目的是将Spring的依赖注入和管理能力引入到Struts 2的Action中,以及利用Spring的AOP进行事务管理。整合步骤通常包括以下几个部分: 1. **添加依赖**:在项目中引入Spring和Struts 2的库...

    Spring整合Junit框架进行单元测试Demo

    `@ContextConfiguration`用来指定上下文配置文件的位置,`@Autowired`则自动将需要的bean注入到测试类的成员变量中。 接下来,我们要创建一个测试类,该类需要继承Spring的`AbstractJUnit4SpringContextTests`或`...

    Spring整合其他ORM框架

    整合 Spring 与其他 ORM 框架,需要理解 Spring 的核心概念,如 Bean 容器、依赖注入以及 AOP 等,同时也需熟悉 ORM 框架自身的特性和使用方式。正确配置相关 jar 包,如 `spring-orm-3.2.0.RELEASE.jar`,是确保...

    Spring-Mybatis整合

    Spring 的核心特性包括依赖注入(DI)和面向切面编程(AOP),这些特性使得代码更加模块化,易于测试和维护。 2. **Mybatis 概述**: Mybatis 是一个基于 Java 的持久层框架,它简化了数据库操作,允许开发者直接...

    spring mvc + spring + hibernate 全注解整合开发视频教程 12

    5. 整合Spring MVC、Spring和Hibernate,实现数据库操作的自动化。 6. 使用Spring测试框架进行单元测试和集成测试。 通过学习本教程,你将能够熟练地运用这三大框架进行全注解的整合开发,从而提高开发效率,打造出...

    spring 与 spring mvc 整合 配置讨论

    6. **数据访问**:Spring整合了多种持久化框架,如Hibernate、MyBatis等,通过配置可以实现数据库操作的自动化管理。 7. **AOP**:利用Spring的AOP功能,可以实现事务管理、日志记录等功能。例如,使用`@...

    XFire整合spring webservice

    Spring框架则是Java开发中的一个核心组件,主要用于处理依赖注入、AOP(面向切面编程)以及应用上下文管理。将XFire与Spring整合可以充分利用Spring的优秀特性,提高Web服务的开发效率和可维护性。本教程主要针对...

    Spring SpringMVC Mybatis SSM整合.pdf

    SSM框架整合,即Spring、SpringMVC和Mybatis整合使用,成为了构建企业级Web应用的标准解决方案之一。下面将详细解释Spring、SpringMVC、Mybatis以及SSM整合的相关知识点。 首先,Spring框架是一个开源的Java平台,...

    spring整合其他框架

    Spring和CXF结合,可以方便地实现服务的发布、调用和管理,同时利用Spring的依赖注入和AOP(面向切面编程)能力,增强服务的可测试性和可维护性。 3. Spring与Mail整合:Spring的Mail API允许开发者轻松地发送邮件...

    spring 与 servlet整合

    1. **依赖注入(Dependency Injection, DI)**:Spring通过XML配置或注解方式管理对象的依赖关系,使得代码更加松耦合,易于测试和维护。 2. **面向切面编程(Aspect-Oriented Programming, AOP)**:Spring提供AOP...

    Spring与Hibernate整合

    在业务层,可以使用Spring的@Autowired注解来自动注入需要的Service或DAO,这些Service和DAO通常会使用HibernateTemplate进行数据库操作。通过这种方式,开发者可以编写无侵入的业务代码,提高代码的可读性和可维护...

    spring+mybatis整合包

    在IT行业中,Spring和MyBatis是两个非常重要的框架,它们分别用于企业级应用的依赖注入和服务层管理以及数据持久化。"spring+mybatis整合包"是指将这两个框架进行集成,以实现更加高效和灵活的Java开发。下面将详细...

    struts hibernate spring整合图解及源码

    综上所述,"struts hibernate spring整合图解及源码"这个主题涵盖了如何将这三大框架结合使用,以构建高效、模块化的JavaWeb应用。通过学习和实践这个整合过程,初学者可以深入理解JavaEE开发的高级技术,并提升自己...

    spring-demo15-测试.zip

    这个模块包含了JUnit和Mockito等测试库的整合,使得开发者能够方便地编写针对Spring组件的测试代码。 2. **单元测试** 单元测试主要关注代码的最小可测试单元,如方法。在Spring中,我们可以使用`@RunWith...

    SSH(struts2,Hibernate,Spring)整合及测试亲测可用所需jar包

    下面我们将深入探讨SSH整合及其测试中的关键知识点。 **Struts2**: Struts2是一个基于MVC设计模式的Web应用框架,它继承了Struts1的优点,并吸收了其他框架如WebWork的优势。Struts2的核心是Action,它是业务逻辑...

Global site tag (gtag.js) - Google Analytics