- 浏览: 286889 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
cheetah_ysc:
不错不错,我喜欢!
Java固定时间间隔执行 -
voyage_mh:
阿选百度竟然一下可以吧你百度出来
使用DWR注解Annotation
要在Spring中使用事务,先要在beans.xml中,把命名空间的名字和Location定义好,然后加一句话<tx:annotation-driven transaction-manager="txManager" />,接下来就是通过SessionFactory来获得txManager(最好查API),然后就可以通过AOP来处理事务(增强等)
beans.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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-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/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <context:annotation-config /> <context:component-scan base-package="com.lbx" /> <tx:annotation-driven transaction-manager="txManager" /> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:jdbc.properties</value> </property> </bean> <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- <property name="annotatedClasses"> <list> <value>com.lbx.model.User</value> <value>com.lbx.model.Log</value> </list> </property> --> <property name="packagesToScan"> <list> <value>com.lbx.model</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> <bean id="logDAO" class="com.lbx.dao.impl.LogDAOImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="u" class="com.lbx.dao.impl.UserDAOImpl"> <property name="sessionFactory" ref="sessionFactory"></property> </bean> <bean id="userService" class="com.lbx.service.UserService"> <property name="userDAO" ref="u"></property> <property name="logDAO" ref="logDAO"></property> </bean> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="add*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="fooServiceOperation" expression="execution(public * com.lbx.service..*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation" /> </aop:config> <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> </beans>
此事务处理的是在Service层,add*的所有方法,看下面一段代码:
package com.lbx.service; import com.lbx.dao.LogDAO; import com.lbx.dao.UserDAO; import com.lbx.model.Log; import com.lbx.model.User; public class UserService { private UserDAO userDAO; private LogDAO logDAO; public void add(User user) { userDAO.save(user); Log log = new Log(); log.setMsg("a user saved!!!!!"); logDAO.save(log); } public UserDAO getUserDAO() { return userDAO; } public void setUserDAO( UserDAO userDAO) { this.userDAO = userDAO; } public LogDAO getLogDAO() { return logDAO; } public void setLogDAO(LogDAO logDAO) { this.logDAO = logDAO; } }
中有一个add(User user)的方法,但是此方法在增加User的情况下还要增加一个Log,而且要同步,然而此程序的事务又加在此方法上,一旦User的增加或者Log的增加出现了异常什么的,就都会回滚,这样就保证了事务的正常。
发表评论
-
Spring中AOP的模拟实现
2010-12-05 13:39 1767什么是AOP? 面向切面编程(AOP)完善spring的依赖 ... -
模拟Spring的IoC或DI
2010-12-05 13:18 1239前提:要想模拟实现Spring的IoC,先要掌握的知识点,XM ... -
Spring面试,IoC和AOP的理解
2010-12-03 19:11 1442spring 的优点? 1.降低了组件之间的耦合性 ,实现了 ... -
Spring整合Struts2
2010-11-13 12:48 926将需要的jar包加到lib下 修改web.xm ... -
Spring整合Hibernate获得HIbernateTemplate之HibernateDaoSupport
2010-11-13 12:40 1307通过继承HibernateDaoSupport来获得Hiber ... -
Spring整合Hibernate之HibernateTemplate
2010-11-13 12:36 1408要得到HibernateTemplate就得先获得Sessio ... -
Spring整合Hibernate的一个简单实例
2010-11-13 12:20 1117单独使用Hibernate的时候,连接数据库时,Hiberna ... -
Spring JDBC访问数据库(properties)
2010-11-08 12:03 1534bean.xml文件的配置 <?xml version ... -
使用Spring JDBC访问数据库(DataSource)
2010-11-08 12:01 1471bean.xml文件的配置(查文档) <?xml ve ... -
Spring中AOP切面的定义方式
2010-11-08 11:46 1957Spring切面的定义有四种: 一,基于Annotat ... -
使用AspectJ来产生动态代理
2010-11-05 20:21 1714AOP的实现者: AspectJ , Aspec ... -
PostConstruct和PreDestroy
2010-11-05 19:55 2295@PostConstruct和@PreDestroy的功能就相 ... -
Spring自动检测组件
2010-11-05 19:22 1038要想检测这些类并注册相应的bean,需要在xml中包含以下元素 ... -
基于Annotation的配置
2010-11-05 18:18 702要想知道怎样使用Annotation来配置bean就的知道命名 ... -
工厂方法注入(静态和非静态)
2010-11-05 16:10 5832先看非静态的 先写一个简单工厂 package com.l ... -
Spring注入类型
2010-11-05 15:36 1133第一中属性注入也就是setter注入(为属性提供相应的set和 ...
相关推荐
在`Spring_1800_Spring_Hibernate_Transaction_Annotation`这个压缩包文件中,很可能包含了使用注解方式实现Spring整合Hibernate事务处理的相关示例代码和配置文件。通过阅读和理解这些代码,你可以更好地掌握这一...
标题"spring整合hibernate示例代码"提示我们,我们将讨论如何在实际项目中结合这两个框架。Spring可以帮助管理Hibernate的SessionFactory和Transaction,提供声明式事务管理,以及通过AOP(面向切面编程)实现更灵活...
标题"Spring整合Hibernate.jar"意味着我们将讨论如何将这两个强大的框架集成在一起,以便在Spring管理的环境中使用Hibernate进行数据库操作。这通常涉及到以下步骤和知识点: 1. **引入依赖**:首先,你需要在项目...
8. **异常处理**:整合过程中,可能会遇到 Hibernate 和 Spring 的异常,如 ConstraintViolationException、DataAccessException 等,需要适当地捕获和处理这些异常,提供友好的错误信息。 9. **测试**:编写单元...
SSH整合,即Struts、Spring和Hibernate的集成,是Java Web开发中常见的一种技术栈,它能有效地解决MVC模式下的业务逻辑处理和数据持久化问题。本篇将详细介绍Spring3.3与Hibernate2.1整合的过程及其相关知识点。 ...
标题中的“spring整合hibernate的jar包”指的是在Java Web开发中,Spring框架与Hibernate持久层框架的集成。这两个框架结合使用可以提供强大的数据访问和业务逻辑处理能力。Spring作为一个全面的轻量级框架,提供了...
在本文中,我们将深入探讨如何将Spring框架与Hibernate ORM(对象关系映射)框架整合,以便在实际项目中实现高效、灵活的数据访问层。Spring以其强大的依赖注入和管理能力,结合Hibernate的数据库操作功能,可以构建...
本文将深入探讨Spring整合Hibernate的相关知识点,适合初学者入门。 首先,我们需要理解Spring的核心理念。Spring框架提供了一个轻量级的容器,它能够管理应用程序中的对象,包括初始化、配置和依赖注入。AOP则是...
这篇名为"spring整合hibernate实例"的内容,显然是关于如何将这两个框架协同工作,构建一个高效、灵活的Java应用的教程。在整合过程中,我们将探讨以下几个关键知识点: 1. **Spring的ApplicationContext**: 这是...
3. **Hibernate事务配置:**在Spring中,需要配置Hibernate SessionFactory,并将其注入到需要进行数据库操作的服务中。同时,通过`PlatformTransactionManager`接口(如HibernateTransactionManager)配置事务管理...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...
**Spring3整合Hibernate4测试Demo** 在Java Web开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的后端应用程序框架,它提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)以及其他...
Spring与Hibernate的整合主要体现在以下几个方面: 1. **数据源配置**:Spring可以通过其DataSource Bean管理数据库连接,提供对多个数据源的支持,以及事务管理的能力。 2. **SessionFactory的管理**:Spring可以...
- **模型-视图-控制器(MVC)设计模式**:Struts2负责控制器,Spring处理业务逻辑,Hibernate处理数据持久化,三者共同实现MVC架构。 综上所述,整合Spring、Hibernate和Struts可以构建出强大且灵活的Java Web应用...
《Spring整合Hibernate实战指南》 在Java开发领域,Spring框架以其强大的依赖注入、AOP(面向切面编程)以及丰富的模块支持,成为了企业级应用开发的首选。而Hibernate作为持久层框架,以其对象关系映射(ORM)能力...
将Hibernate与Spring整合可以充分利用两者的优点,提高开发效率并降低复杂性。 一、Hibernate概述 Hibernate是Java世界中领先的ORM框架之一,它允许开发者用Java对象来操作数据库记录,而无需编写SQL语句。通过配置...
总结来说,Spring 与 Hibernate 的整合主要涉及 SessionFactory 的配置、DAO 类的实现以及事务管理。通过 Spring 的 IoC 容器管理数据访问资源,可以使应用更加解耦,同时利用 Spring 的事务管理功能,可以简化事务...
在这个整合过程中,Spring会管理Hibernate SessionFactory的生命周期,并通过AOP代理来处理事务。当需要执行数据库操作时,Spring会自动开启和提交/回滚事务,简化了开发者的代码。 总的来说,"spring+hibernate...
3. **jasperreports-1.3.4.jar**:这是一款报告生成库,与Spring整合时,可以帮助我们生成复杂的数据报表,但在这个场景下可能并非必需。 4. **itext-1.3.jar**:iText是一个用于生成PDF文档的库,jasperreports...
下面我们将详细讲解如何进行Spring AOP整合Hibernate以及如何在其中使用事务。 1. **Spring AOP简介** 面向切面编程(AOP)是Spring框架的核心特性之一,它允许开发者定义“切面”,这些切面可以包含业务逻辑的...