spring怎样在service层控制事务
3个回答
展开全部
<!–声明事务–>
< bean id=”txManager”>
< property name=”sessionFactory” ref=”sessionFactory” />
< /bean>
< !– 创建通知–>
< tx:advice id=”txAdvice” transaction-manager=”txManager”>
< tx:attributes>
< tx:method name=”find*” read-only=”true”/>
< tx:method name=”has*” read-only=”true”/>
< tx:method name=”add*” propagation=”REQUIRED” />
< tx:method name=”alter*” propagation=”REQUIRED” />
< tx:method name=”upd*” propagation=”REQUIRED” />
< tx:method name=”del*” propagation=”REQUIRED” />
< tx:method name=”exec*” propagation=”REQUIRED” />
< /tx:attributes>
< /tx:advice>
< !– 切入接口所在的包 –>
< aop:config>
< aop:pointcut id=”serviceOperation” expression=”execution(public * org.bgi.*.service.*.*(..))” />
< aop:advisor advice-ref=”txAdvice” pointcut-ref=”serviceOperation” />
< /aop:config>
< bean id=”txManager”>
< property name=”sessionFactory” ref=”sessionFactory” />
< /bean>
< !– 创建通知–>
< tx:advice id=”txAdvice” transaction-manager=”txManager”>
< tx:attributes>
< tx:method name=”find*” read-only=”true”/>
< tx:method name=”has*” read-only=”true”/>
< tx:method name=”add*” propagation=”REQUIRED” />
< tx:method name=”alter*” propagation=”REQUIRED” />
< tx:method name=”upd*” propagation=”REQUIRED” />
< tx:method name=”del*” propagation=”REQUIRED” />
< tx:method name=”exec*” propagation=”REQUIRED” />
< /tx:attributes>
< /tx:advice>
< !– 切入接口所在的包 –>
< aop:config>
< aop:pointcut id=”serviceOperation” expression=”execution(public * org.bgi.*.service.*.*(..))” />
< aop:advisor advice-ref=”txAdvice” pointcut-ref=”serviceOperation” />
< /aop:config>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-01-17 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517174
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
通过AOP
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sf" />
</bean>
<aop:config>
<aop:pointcut id="bussinessService"
expression="execution(public * com.bjsxt.registration.service.*.*(..))" />对什么类加事物
<aop:advisor pointcut-ref="bussinessService"
advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="exists" read-only="true" />
<tx:method name="add*" propagation="REQUIRED"/>这里就是控制事务,add*,表示对add方法加事物
</tx:attributes>
</tx:advice>
<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sf" />
</bean>
<aop:config>
<aop:pointcut id="bussinessService"
expression="execution(public * com.bjsxt.registration.service.*.*(..))" />对什么类加事物
<aop:advisor pointcut-ref="bussinessService"
advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="exists" read-only="true" />
<tx:method name="add*" propagation="REQUIRED"/>这里就是控制事务,add*,表示对add方法加事物
</tx:attributes>
</tx:advice>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。
DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager。
DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询