spring aop 同一个bean中方法调用方法
来源:互联网 发布:java ftpclient api 编辑:程序博客网 时间:2024/06/12 00:17
- public class SomeBean {
- public void methodA() {
- this.methodB();
- }
- public void methodB() {
- System.out.println("methodB executing...");
- }
- }
- public class TestBean
- {
- private SomeBean someBean;
- public void outterMethod() {
- someBean.methodA();
- }
- public void outterMethod2() {
- someBean.methodB();
- }
- //getter&setter 略...
- }
上述两个类被定义成Spring的bean,并且outterMethod、methodA和methodB都在Spring的aop拦截范围内。
当由外部调用testBean.outterMehtod()方法时,产生了一次AOP拦截,接着outterMehtod调用someBean.methodA()时,又产生了一次AOP拦截,但是当methodA调用methodB时,将不会产生AOP拦截。
也就是说Spring中同一个bean的内部方法之间的调用,是不会产生AOP代理的。
基于以上原因,在Spring的事务配置中,如果methodB的每次调用都需要开启一个新的事务的话(propagation设置成REQUIRS_NEW),则当执行outterMethod方法时methodB无法成功开启新事务(因为methodB由methodA调用)。但是当执行outterMethod2方法时,methodB可以成功开启属于自己的新事务。
因此,如果methodB一定要开启一个自己的AOP代理的话,请把methodB放在一个独立的类中并且确保methodB不在类内部被调用。
0 0
- spring aop 同一个bean中方法调用方法
- spring aop 同一个bean中方法调用方法
- spring aop 同一个类中一个方法调用另一个方法,拦截不到被调用的方法
- 在同一个类中调用另一个方法没有触发 Spring AOP 的问题
- 在同一个类中调用另一个方法没有触发 Spring AOP 的问题【转】
- main方法中调用spring注入bean
- Spring AOP代理机制以及方法调用在同一个类的另一个方法的问题
- Spring AOP为什么不能拦截同一个对象内方法的嵌套调用(一)
- Spring AOP为什么不能拦截同一个对象内方法的嵌套调用
- servert 中如何调用spring管理的bean方法
- spring configuration 中 @Bean 方法的内部调用代理实现
- Spring的Bean内部方法调用无法使用AOP切面(CacheAble注解失效)
- spring AOP中自身方法调用无法应用代理解决办法
- Spring方法注入非单例bean的调用
- Spring之Bean生命周期方法调用
- SPRING中BEAN注入成功,可是启动WEB服务器,调用方法时,BEAN全是空,NullpointerException
- Spring Bean中方法调用/http请求调用/存储过程调用实现的工具类
- spring之aop方法内部调用问题
- Javascript—location
- uva11292勇士杀恶龙
- myeclipse新建项目需要配置的选项
- Learning Spark 笔记(七) -- 受益于分区的操作
- 使用JQuery使页面旋转90度
- spring aop 同一个bean中方法调用方法
- 配置Nginx反向代理需要注意的问题汇总
- React Native Sublime 中 Package Control 的安装与使用方法
- ScrollView中嵌套 GridView 导致 ScrollView默认不停留在顶部的解决方案和分析
- 2016-8-30 关于jquery联动
- 深入Main函数中的参数argc,argv的使用详解
- Vuforia SDK---- AR开发vuforia 相机前后摄像头动态切换功能实现
- 数组方法
- 判断是否连接网络,当前网络类型,Gps是否打开