Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java aspectj autoproxy的细粒度控制是否可能在春季实现?_Java_Spring - Fatal编程技术网

Java aspectj autoproxy的细粒度控制是否可能在春季实现?

Java aspectj autoproxy的细粒度控制是否可能在春季实现?,java,spring,Java,Spring,如果我只是添加到spring上下文的开头,那么实现接口的每个bean都会得到一个JDK代理。我真的希望将代理限制在A)实际需要代理的类或B)我指定为需要代理的类 我尝试在xml bean定义中为需要代理的bean使用aop:scoped proxy节,但结果表明这似乎并没有给我aop建议 我还尝试在springxml文件的末尾添加,但是在添加所有需要代理的bean之前,它似乎不能正常工作 我有很多具有接口的bean,但只有少数(定义良好的)bean需要AoP建议,而这些代理正在把我的stackt

如果我只是添加到spring上下文的开头,那么实现接口的每个bean都会得到一个JDK代理。我真的希望将代理限制在A)实际需要代理的类或B)我指定为需要代理的类

我尝试在xml bean定义中为需要代理的bean使用aop:scoped proxy节,但结果表明这似乎并没有给我aop建议

我还尝试在springxml文件的末尾添加,但是在添加所有需要代理的bean之前,它似乎不能正常工作

我有很多具有接口的bean,但只有少数(定义良好的)bean需要AoP建议,而这些代理正在把我的stacktraces搞得一团糟。(我已经浏览了Spring3.0,并怀疑它在那里是可能的,但似乎还需要一段时间)


这在2.5.X中可能吗

从AbstractAdvisorautorProxyCreator.java第67行(Spring 2.5.6)中可以看出,autoproxy创建者实际上只做我要求它做的事情。它不会自动氧化超过它认为必要的程度

事实证明,您使用的切入点表达式极大地影响了这个类代理的程度;我使用的注释是

@Around(value="@target(myannotation)")
这基本上意味着spring生成一个代理,该代理根据实际调用目标的类型决定拦截。这样做的缺点是spring试图用applicationcontext中所有可用的bean来实现这一点。如果我用了什么东西like@within相反,spring将使用接口来决定是否应该进行自动代理,这可以在构建applicationcontext时静态地确定

所以现在我只有两个被代理的类;)