我一直在玩Spring的aop:config XML配置。当我将advice方法设为protected / private方法时,我希望得到一个运行时异常。但是,建议方法已正确执行。这是否意味着Spring正在修改建议方法访问权限,或者是其他事情发生在这里?澄清:
public class Foo
{
public void foo() {} // advised method
}
public class Bar
{
private void bar() {} // advice method, this e.g. will be applied as before-advice to foo() above
}
Foo和Bar类都在不同的包中。
答案 0 :(得分:1)
在处理建议时,Spring会通过反射处理每个带注释的类,并且不会直接从外部调用您的类的方法,因此您的建议的可见性权限不相关。
不幸的是,没有精确的文档可以解释Spring如何深入工作,您将不得不帮助自己挖掘源代码。这是有道理的,因为开源项目文档的目标不是解释内部,而是如何使用项目提供的功能。
如果您真的想查看文档,http://static.springsource.org/spring/docs/3.0.7.RELEASE/spring-framework-reference/html/beans.html#beans-factory-extension向您解释AOP是通过BeanFactoryPostProcessors应用的,那么您可能想要查看javadoc: