0

我一直在玩 Spring 的 aop:config XML 配置。当我将建议方法设置为受保护/私有方法时,我期望得到一个运行时异常。但是,建议方法已正确执行。这是否意味着Spring正在修改advice方法访问权限,还是这里发生了其他事情?澄清:

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 类都在不同的包中。

4

1 回答 1

1

在处理advice时,Spring通过反射处理每个注解的类,不会直接从外部调用你的类的方法,所以你的advice的可见性权限是不相关的。

不幸的是,没有准确的文档可以解释 Spring 如何如此深入地工作,您将不得不帮助自己挖掘源代码。这是有道理的,因为开源项目文档的目标不是解释内部结构,而是如何使用项目提供的功能。

如果您真的想查看文档,http: //static.springsource.org/spring/docs/3.0.7.RELEASE/spring-framework-reference/html/beans.html#beans-factory-extension 会向您解释AOP 是通过 BeanFactoryPostProcessors 应用的,然后您可能想查看 javadoc:

http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/aop/framework/package-tree.html

于 2012-07-12T08:34:42.110 回答