在两个Web应用程序之间共享spring方面类

时间:2011-06-10 07:17:49

标签: java spring aop ear

我的应用程序包含两个Web应用程序和EAR级别的jar文件。 一个Web应用程序(比如说SPApp)是使用Spring构建的,另一个是使用Struts(STApp)构建的。 我想分享这里定义的SPApp的Aspect类SystemArchitecture spring aop

  

6.2.3.3。共享通用切入点定义

在STApp。

我在EAR级jar文件中添加了SystemArchitecture类,并从SPApp调用,但在访问STApp时不执行。

然后我将方面类SystemArchitecture移到了STApp中,令人惊讶的是它有效。 当我将SystemArchitecture放在EAR级别的lib中时,我不确定会出现什么问题。

请帮忙。

谢谢, Hanumant

1 个答案:

答案 0 :(得分:0)

Spring AOP不会在春天以外工作。 AOP的Spring实现基于动态代理,其中spring bean工厂将代理建议的类来注入您的切入点。你所追求的是所谓的“加载时间编织”,其中java代理用于拦截ClassLoader并在加载时装饰建议类。这是一个AspectJ功能,而不是Spring AOP。在此处阅读更多内容:http://www.eclipse.org/aspectj/doc/released/devguide/ltw.html

Spring和AspectJ也可以一起玩,但它仅限于弹簧驱动的应用程序:http://static.springsource.org/spring/docs/3.0.0.RC2/spring-framework-reference/html/ch07s08.html

但是,如果你想要“真正的”AOP,独立于Spring那么你需要进行加载时编织和AspectJ。

编辑:可能误解了您的问题。你说只有当你把你的建议类放在应用程序本身时,它才能在你的struts应用程序中运行。从那以后我读到你的Struts应用程序也是Spring驱动的。在不知道你的配置的情况下很难给出答案。具体来说,web.xml(both),application.xml和你的spring configs。