springhibernate:在Spring中配置Hibernate的事务

  本文主要探讨如何利用Spring来装配组件包括其事务上下文从J2EE应用内部连接到单个数据库并不是什么难事但是如果要装配或者集成企业级组件情况就复杂了个组件可以有个或多个支持它数据库因此当装配两个或更多组件时我们希望能够保持在跨组件多个数据库中进行操作原子性J2EE服务器为这些组件提供了个容器来保证事务原子性和跨组件独立性如果使用不是J2EE服务器则可以利用Spring来帮助我们Spring基于Inversion of Control(控制反转)模式(也称为依赖注入)它不仅可以连接组件服务还可以连接关联事务上下文在本文中我们将Hibernate用作对象/关系持久性存储和查询服务  

  装配组件事务

  假设在企业组件库里我们已经有个审计组件里面有可以被客户端服务思路方法然后当我们想要构建个订单处理系统时我们发现存在这样设计要求:OrderListManager组件服务同样需要审计组件服务OrderListManager创建和管理订单因此所有OrderListManager服务都有自己事务属性当我们从OrderListManager服务内审计组件时我们实际上是在把OrderListManager服务事务上下文传播给审计服务也许将来新业务服务组件同样需要审计组件但那时将在个区别事务上下文中实际结果就是即使审计组件功能保持不变它也可能是由别业务服务功能组成包含了混搭(mix-and-match)事务属性来提供区别运行时事务性行为

  在图1中有两个独立上下文流程在流程1里如果客户端有TX上下文那么OrderListManager既可以参和其中也可以启动个新TX这取决于客户端是否在TX中以及为OrderListManager思路方法指定了什么样TX属性这同样适用于OrderListManager服务依次AuditManager思路方法情况



Tags:  spring2.0事务配置 spring事务配置 spring和hibernate springhibernate

延伸阅读

最新评论

发表评论