Spirng AOP 事物控制问题

问题描述

这是业务公用的com.dream.business.proxy.services这是保存的核心包com.dream.framework.core所有的保存都要调用此包的方法我现在想用AOP切入service让在service实现类里面里面是一个事物,怎么控制,如果只控制com.dream.framework.core就没意义了,我要用一种想法就是@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public@interfaceProxyAopService在service实现类中加入上面的注解就受事物控制,怎么配置呢而且事物要包括om.dream.framework.core不知是下属的子类或者包

解决方案

解决方案二:
搞不懂你为什么要自己一个事务注解,Spring自身就已经实现了事务控制的注解Transcation,只需要在配置文件中配置事务为注解即可,是需要使用事务控制的方法上加上该注解即可。如果要自己实现,思路如下:1、定义注解2、编写自定义注解切面,织入注解@Component@AspectJpublicclassAop{@Around(织入切面的条件)publicObjectcut(){}}如果想要现成的例子,请上Spring官网查阅文档
解决方案三:
引用1楼crazypandariy的回复:

搞不懂你为什么要自己一个事务注解,Spring自身就已经实现了事务控制的注解Transcation,只需要在配置文件中配置事务为注解即可,是需要使用事务控制的方法上加上该注解即可。如果要自己实现,思路如下:1、定义注解2、编写自定义注解切面,织入注解@Component@AspectJpublicclassAop{@Around(织入切面的条件)publicObjectcut(){}}如果想要现成的例子,请上Spring官网查阅文档

谢谢,重造轮子了呵呵,我走入歧途了了后来还是使用AOP切入业务逻辑层的<!--事务的传播特性--><tx:adviceid="txadvice"transaction-manager="transactionManager"><tx:attributes><tx:methodname="add*"propagation="REQUIRED"/><tx:methodname="delete*"propagation="REQUIRED"/><tx:methodname="save*"propagation="REQUIRED"rollback-for="Exception"/><tx:methodname="modify*"propagation="REQUIRED"/><tx:methodname="update"propagation="REQUIRED"/><!--hibernate4必须配置为开启事务否则getCurrentSession()获取不到--><tx:methodname="*"propagation="REQUIRED"read-only="true"/></tx:attributes></tx:advice><!--那些类那些方法使用事务--><aop:config><!--只对业务逻辑层实施事务接口的任意方法的执行--><aop:pointcutid="allManagerMethod"expression="(execution(*com.dream.business.web..services..*.*(..)))"/><aop:advisorpointcut-ref="allManagerMethod"advice-ref="txadvice"/><!--只对业务逻辑层实施事务标注的所有类的任意方法.--></aop:config>

为后人解答,web包下的所有包里面的services为事物的切入点,记得一定是定义的save*方法其他的方法肯定不受事物控制的,
解决方案四:
个人觉得还是使用注解更方便灵活:<!--配置事务管理器--><beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><propertyname="dataSource"ref="dataSource"></property></bean><tx:annotation-driventransaction-manager="transactionManager"/>

基于注解的事务只需要在配置文件中加入以上配置即可实现。在需要开启事务的方法上加上注解@Transcation

时间: 2024-11-05 18:36:26

Spirng AOP 事物控制问题的相关文章

Spirng+hibernate的事物控制问题

问题描述 请教下大家,使用Spirng+hibernat进行事物管理,无法控制,我在service层进行事物控制,模拟条出错信息,但是不会回滚事物代码如下:applicationContext.xml<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://

AOP事物导致service执行sql不能全部执行,求大神解答

问题描述 AOP事物导致service执行sql不能全部执行,求大神解答 太扯淡了,我在servicel里调用dao做了三个更新,使用AOP控制事物的时候,只执行了一个更新,求大神解答 解决方案 是事务吧,只执行一个更新.说明其它两个有错,事务回滚了.代码放上来看看,AOP 解决方案二: 看看配置中事务的配置,还是具体代码具体分析

关于自己写的JDBC事物控制,交给spring aop管理的问题

问题描述 大家好,最近想自己写一个简单好用的框架,理念为:JDBC+Spring+SpringMVC,自己封装JDBC做增删改查操作,类的生命周期与事物管理交给spring管理,与前台Web交互用SpringMVC.现在遇到事物管理交由AOP管理的问题,实在头痛.下面将思路与代码写出来,请大家指点解决.以下是数据源与事物管理的配置:<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverM

至急的一个问题,关于spring3.12+ mybatis的事物控制

问题描述 遇到一个很急的问题,我用的是声明式事务.样式参照论坛的涛ge的代码,有这样一个需求,比如在下面的代码中,假如save方法中的如果address 是 aaaa,那么要求事物强制回滚掉,这个地方该怎么解决啊package cn.javass.spring.chapter9.service.impl;//省略importpublic class AnnotationUserServiceImpl implements IUserService {... @Transactional(prop

spring-Spring AOP和 事物之间问题?????????????

问题描述 Spring AOP和 事物之间问题????????????? class="org.springframework.orm.hibernate4.HibernateTransactionManager"> tx:attributes /tx:attributes/tx:advice <aop:config> <aop:pointcut expression="execution(* com.wuye.service.*Impl.*(..))

我要造轮子之基于JDK的AOP实现

1 前言 Aspect Oriented Programing,面向切面编程. 利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. AOP主要用于日志记录,性能统计,安全控制(权限控制),事务处理,异常处理等.将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码. 像Spring

spring mvc +hibernate4事务控制问题求大神解答

问题描述 spring mvc +hibernate4事务控制问题求大神解答 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="

spring mvc+hibernate4事务控制

问题描述 spring mvc+hibernate4事务控制 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://

php+mysqli事务控制实现银行转账实例

 这篇文章主要介绍了php+mysqli事务控制实现银行转账,实例分析了事物控制的原理与事物回滚的使用技巧,需要的朋友可以参考 本文实例讲述了php+mysqli事务控制实现银行转账的方法.分享给大家供大家参考.具体分析如下: 事务控制,也就是说所有的语句执行成功后,才会提交.否则,如果前面有语句执行成功,而后面没有执行成功,则回滚到执行之前的状态.通过银行转账的案例来说明这个应用.一个账号转了钱出去,另一个账号必须有钱转入,这样才算成功. 代码如下:   1 2 3 4 5 6 7 8 9 1