当你开始搞乱Spring的自动代理的东西,你经常遇到这样的行为logging: 实现BeanPostProcessor接口的类是特殊的,所以它们被容器区别对待。 所有BeanPostProcessors及其直接引用的Bean将在启动时实例化,作为ApplicationContext的特殊启动阶段的一部分,然后所有BeanPostProcessors将以已sorting的方式注册 – 并应用于所有其他bean。 由于AOP自动代理被实现为一个BeanPostProcessor本身,所以没有BeanPostProcessors或直接引用的Bean有资格进行自动代理(因此不会有“编织”的方面)。 对于任何这样的bean,您应该看到一条信息日志消息:“Bean'foo'不适合所有BeanPostProcessors处理(例如:不适合自动代理)”。 换句话说,如果我编写自己的BeanPostProcessor,并且该类直接引用上下文中的其他Bean,那么这些引用的Bean将不具备自动代理的资格,并且会为此logging一条消息。 我的问题是跟踪直接引用的位置可能非常困难,因为“直接引用”实际上可能是一个传递依赖链,最终在应用程序上下文中占用一半的bean。 所有的spring给你的是单一的信息消息,并没有什么帮助,除了告诉你什么时候一个bean被引用到这个网页中。 我正在开发的BeanPostProcessor确实具有对其他bean的直接引用,但它是一组非常有限的引用。 尽pipe如此,根据日志消息,几乎我的上下文中的每个bean都被排除在自动代理之外,但是我无法看到依赖关系在哪里发生。 有没有人find一个更好的方法来跟踪这个呢?
我的设置非常简单:我有一个Web前端,后端是弹簧连接的。 我正在使用AOP在我的rpc服务上添加一层安全性。 这一切都很好,除了Web应用程序在发布时中止: [java] SEVERE:上下文初始化失败 [java] org.springframework.beans.factory.parsing.BeanDefinitionParsingException:configuration问题:无法findXML模式命名空间的Spring NamespaceHandler [http://www.springframework.org/schema/aop] [java]冒充资源:ServletContext资源[/WEB-INF/gwthandler-servlet.xml] 这是我的XMLconfiguration文件的片段: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <aop:config> <aop:aspect id="security" ref="securityAspect" > <aop:pointcut id="securedServices" expression="@annotation(com.fb.boog.common.aspects.Secured)"/> <aop:before method="checkSecurity" pointcut-ref="securedServices"/> </aop:aspect> </aop:config> 我通过互联网阅读,可能是我的class加载问题的核心。 令人怀疑的是,因为这里是我的WEB-INF / lib目录: ./WEB-INF/lib ./WEB-INF/lib/aopalliance-alpha1.jar ./WEB-INF/lib/aspectj-1.6.6.jar ./WEB-INF/lib/commons-collections.jar ./WEB-INF/lib/commons-logging.jar ./WEB-INF/lib/ehcache-core-1.7.0.jar ./WEB-INF/lib/ejb3-persistence.jar ./WEB-INF/lib/hibernate ./WEB-INF/lib/hibernate/antlr.jar ./WEB-INF/lib/hibernate/asm.jar ./WEB-INF/lib/hibernate/bsh-2.0b1.jar ./WEB-INF/lib/hibernate/cglib.jar ./WEB-INF/lib/hibernate/dom4j.jar ./WEB-INF/lib/hibernate/freemarker.jar ./WEB-INF/lib/hibernate/hibernate-annotations.jar ./WEB-INF/lib/hibernate/hibernate-shards.jar ./WEB-INF/lib/hibernate/hibernate-tools.jar ./WEB-INF/lib/hibernate/hibernate.jar ./WEB-INF/lib/hibernate/jtidy-r8-20060801.jar […]