新项目用了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的整合,同时也涵盖了Hibernate的实体映射、DAO设计和事务控制。通过这个过程,我们可以构建出一个高效、健壮...
在"SSH整合及测试亲测可用"的项目中,这三大框架被集成在一起,以实现高效的后端逻辑处理。通常,Struts2负责处理HTTP请求,调用业务逻辑;Hibernate则负责数据库操作;而Spring则作为整体的粘合剂,管理它们之间的...
在这个Demo中,可能会使用@Transactional注解来声明事务边界,由Spring自动管理事务的开始、提交或回滚。 8. **JDBC DataSource配置**:在Spring配置文件中定义DataSource,提供数据库连接池,如Apache Commons ...
Spring框架的核心功能之一是依赖注入(DI),它通过@Autowired注解可以自动匹配并注入所需的服务实例,降低了组件之间的耦合度。在本项目中,Spring会自动扫描指定的包,找到带有@Service注解的类,并通过@Autowired...
Spring可以通过ZK的@Wire注解自动将Bean注入到ZK组件中。 4. **配置ZK-Spring**:需要引入ZK-Spring的库,这是一个连接ZK和Spring的桥梁,它提供了Spring的ApplicationContext到ZK Session的绑定,使得ZK组件可以...
整合Spring和Struts 2的主要目的是将Spring的依赖注入和管理能力引入到Struts 2的Action中,以及利用Spring的AOP进行事务管理。整合步骤通常包括以下几个部分: 1. **添加依赖**:在项目中引入Spring和Struts 2的库...
`@ContextConfiguration`用来指定上下文配置文件的位置,`@Autowired`则自动将需要的bean注入到测试类的成员变量中。 接下来,我们要创建一个测试类,该类需要继承Spring的`AbstractJUnit4SpringContextTests`或`...
整合 Spring 与其他 ORM 框架,需要理解 Spring 的核心概念,如 Bean 容器、依赖注入以及 AOP 等,同时也需熟悉 ORM 框架自身的特性和使用方式。正确配置相关 jar 包,如 `spring-orm-3.2.0.RELEASE.jar`,是确保...
Spring 的核心特性包括依赖注入(DI)和面向切面编程(AOP),这些特性使得代码更加模块化,易于测试和维护。 2. **Mybatis 概述**: Mybatis 是一个基于 Java 的持久层框架,它简化了数据库操作,允许开发者直接...
5. 整合Spring MVC、Spring和Hibernate,实现数据库操作的自动化。 6. 使用Spring测试框架进行单元测试和集成测试。 通过学习本教程,你将能够熟练地运用这三大框架进行全注解的整合开发,从而提高开发效率,打造出...
6. **数据访问**:Spring整合了多种持久化框架,如Hibernate、MyBatis等,通过配置可以实现数据库操作的自动化管理。 7. **AOP**:利用Spring的AOP功能,可以实现事务管理、日志记录等功能。例如,使用`@...
Spring框架则是Java开发中的一个核心组件,主要用于处理依赖注入、AOP(面向切面编程)以及应用上下文管理。将XFire与Spring整合可以充分利用Spring的优秀特性,提高Web服务的开发效率和可维护性。本教程主要针对...
SSM框架整合,即Spring、SpringMVC和Mybatis整合使用,成为了构建企业级Web应用的标准解决方案之一。下面将详细解释Spring、SpringMVC、Mybatis以及SSM整合的相关知识点。 首先,Spring框架是一个开源的Java平台,...
Spring和CXF结合,可以方便地实现服务的发布、调用和管理,同时利用Spring的依赖注入和AOP(面向切面编程)能力,增强服务的可测试性和可维护性。 3. Spring与Mail整合:Spring的Mail API允许开发者轻松地发送邮件...
1. **依赖注入(Dependency Injection, DI)**:Spring通过XML配置或注解方式管理对象的依赖关系,使得代码更加松耦合,易于测试和维护。 2. **面向切面编程(Aspect-Oriented Programming, AOP)**:Spring提供AOP...
在业务层,可以使用Spring的@Autowired注解来自动注入需要的Service或DAO,这些Service和DAO通常会使用HibernateTemplate进行数据库操作。通过这种方式,开发者可以编写无侵入的业务代码,提高代码的可读性和可维护...
在IT行业中,Spring和MyBatis是两个非常重要的框架,它们分别用于企业级应用的依赖注入和服务层管理以及数据持久化。"spring+mybatis整合包"是指将这两个框架进行集成,以实现更加高效和灵活的Java开发。下面将详细...
综上所述,"struts hibernate spring整合图解及源码"这个主题涵盖了如何将这三大框架结合使用,以构建高效、模块化的JavaWeb应用。通过学习和实践这个整合过程,初学者可以深入理解JavaEE开发的高级技术,并提升自己...
这个模块包含了JUnit和Mockito等测试库的整合,使得开发者能够方便地编写针对Spring组件的测试代码。 2. **单元测试** 单元测试主要关注代码的最小可测试单元,如方法。在Spring中,我们可以使用`@RunWith...
下面我们将深入探讨SSH整合及其测试中的关键知识点。 **Struts2**: Struts2是一个基于MVC设计模式的Web应用框架,它继承了Struts1的优点,并吸收了其他框架如WebWork的优势。Struts2的核心是Action,它是业务逻辑...