`
- 浏览:
32299 次
- 性别:
- 来自:
宁波
-
jdo dao和jdbc dao能否在同一个事务里这我不太清楚。因为我没用过jdo daosupport。
但是jdbc daosupport和hibernate daosupport却能被wrap到同一个事务里。成立需要几点条件:
1、使用同一个datasource
2、事务交由hibernateTransactionManager管理
3、相关dao以及service需要使用runtime exception体系,使用spring提供的exception可以,自己封装设计的runtime exception体系也行。
与此相关的事务代码片断在HibernateTransactionManager类中。最好可以把DatasourceTransactionManager和HibernateTransactionManager对比来看。
在此贴上几个源码片断,多余的我就不解释了。相信大家一看自明。
HibernateTransactionManager#doGetTransaction
由此可以看出hibernateTransactionManager可以检测到绑定在当前线程上的connection
HibernateTransactionManager#doBegin
由此可以看出,在真正启动一个事务时,hbTxnManager会先把connection绑定到当前线程,再绑定session到当前线程,由TransactionSynchronizationManager统一管理。并且上面提到的connection是从session中取得的,也就是说,无论是jdbc dao还是hibernate dao本质上使用的是同一个database connection
因此得出结论:HibernateTransactionManager实际上是可以同时管理由JdbcTemplate或JdbcDaoSupport实现的dao以及HibernateTemplate或HibernateDaoSupport实现的事务的。
<bean id="proxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<!-- 需要自动创建事务代理的bean -->
<list>
<value>*Service</value>
<!-- <value>*Dao</value> -->
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
以自动创建事务代表的bean 配置时,如果该对象屏敝事务的话,则Bean 的名字不要以Service结束就可以了。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
总结一下,`Spring Hibernate事务实例`涵盖了以下核心知识点: 1. Spring框架的声明式事务管理:通过`TransactionInterceptor`和`@Transactional`注解实现。 2. Hibernate事务管理:使用`...
在Spring中,我们可以配置`PlatformTransactionManager`接口的实现类,如`HibernateTransactionManager`,它会自动感知Hibernate Session并管理事务。通过声明式事务管理,我们只需在方法上添加`@Transactional`注解...
5. **Spring3.0的配置**:Spring3.0引入了许多新特性,如AOP表达式、注解驱动的事务管理、JSR-303/JSR-349验证支持等。在配置Memcached时,Spring可以用来管理缓存策略,例如使用`@Cacheable`和`@CacheEvict`注解来...
3. **Hibernate事务配置:**在Spring中,需要配置Hibernate SessionFactory,并将其注入到需要进行数据库操作的服务中。同时,通过`PlatformTransactionManager`接口(如HibernateTransactionManager)配置事务管理...
在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...
在Spring框架中集成和配置Hibernate事务管理是企业级Java应用中的常见实践,它能提供高效且灵活的事务处理策略。Spring作为一款强大的依赖注入(DI)和面向切面编程(AOP)容器,能够轻松地管理和协调不同数据访问...
这通常通过XML或Java配置完成,包括Spring MVC的DispatcherServlet配置、数据源配置以及Hibernate SessionFactory配置。 2. 配置Spring MVC:设置DispatcherServlet,处理HTTP请求,并配置HandlerMapping和...
当我们需要在应用程序中进行事务管理时,Spring提供了一种声明式的方式,使得事务配置更为简洁。本篇将详细介绍如何在Spring 3和Hibernate 4中通过注解来实现声明式事务管理。 首先,我们需要在项目中引入Spring和...
本项目是关于如何使用Spring MVC与Hibernate结合来实现事务管理的实践教程,通过MyEclipse自动生成所需的包和配置文件。这里将详细讲解这一过程,以及涉及到的关键知识点。 首先,Spring MVC作为Spring框架的一部分...
Spring作为一个全面的开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等核心功能,而Hibernate则是一个优秀的对象关系映射(ORM)框架,使得Java开发者可以更加方便地操作数据库。在本案例中,我们将探讨...
通过这个登录实例,你可以学习到如何在实际项目中集成Struts2、Spring和Hibernate,理解它们之间的协作方式,以及如何编写和配置相关的代码。同时,这也将帮助你掌握Java Web开发的基础知识,提高解决实际问题的能力...
在IT行业中,数据库事务是确保数据一致性的重要机制,特别是在分布式系统和多层架构中,如Spring、Hibernate和MySQL的组合。本实例将深入探讨如何在这样的环境中实现事务管理。 Spring框架以其强大的依赖注入和AOP...
在`Spring_1800_Spring_Hibernate_Transaction_Annotation`这个压缩包文件中,很可能包含了使用注解方式实现Spring整合Hibernate事务处理的相关示例代码和配置文件。通过阅读和理解这些代码,你可以更好地掌握这一...
5. **配置Spring和Hibernate**:在Spring 3中,我们需要配置Hibernate SessionFactory,并将其与Spring的事务管理器相结合。这通常通过XML配置文件或Java配置类完成。同时,需要为数据源、SessionFactory和事务管理...
至此,完成了Spring MVC、Spring和Hibernate的集成配置。这个配置使得应用程序能够自动扫描并管理bean,处理数据库连接,执行ORM操作,并通过Spring MVC处理HTTP请求。在实际项目中,还需要根据具体的业务需求和...
4. Hibernate的配置和实体类的注解,以及如何在Spring中配置SessionFactory和TransactionManager。 5. 整合Spring MVC、Spring和Hibernate,实现数据库操作的自动化。 6. 使用Spring测试框架进行单元测试和集成测试...
在配置Struts2、Spring和Hibernate的开发环境时,首先需要确保每个框架的基础环境已经准备就绪。对于Struts2,需要下载并引入相应的jar包,如struts2-core、xwork、ognl、commons-logging和freemarker等。然后,在`...
Spring通过其DataSource和Transaction Manager组件来管理数据库连接和事务,同时通过HibernateTemplate或SessionFactoryBean来与Hibernate进行交互,这样既保留了Spring的灵活性,又利用了Hibernate的强大持久化能力...
### Spring + Hibernate 详解与配置 #### Spring框架概述 Spring框架是一个开源的、轻量级的应用框架,旨在简化企业级应用开发。它提供了一个全面的编程模型,支持从Web到数据访问等各种应用需求。Spring的核心...
3. **Spring配置**:`applicationContext.xml`是Spring的配置文件,通常包含Bean定义、数据源、事务管理、Hibernate SessionFactory以及其他服务的配置。这里没有给出具体的配置内容,但在实际项目中,会包含对...