Java 在两个Web应用程序之间共享spring方面类
我的应用程序由两个web应用程序和EAR级jar文件组成。 一个web应用(比如SPApp)是使用Spring构建的,另一个是使用Struts构建的(STApp)。 我想分享这里定义的SPApp的方面类Java 在两个Web应用程序之间共享spring方面类,java,spring,aop,ear,Java,Spring,Aop,Ear,我的应用程序由两个web应用程序和EAR级jar文件组成。 一个web应用(比如SPApp)是使用Spring构建的,另一个是使用Struts构建的(STApp)。 我想分享这里定义的SPApp的方面类SystemArchitecture 6.2.3.3。共享公共切入点定义 在斯塔普 我在EAR级jar文件中添加了SystemArchitecture类,并从SPApp调用,但在访问STApp时不执行 因此,我将aspect类SystemArchitecture移到了STApp中,令人惊讶的是,它
SystemArchitecture
6.2.3.3。共享公共切入点定义
在斯塔普
我在EAR级jar文件中添加了SystemArchitecture
类,并从SPApp调用,但在访问STApp时不执行
因此,我将aspect类SystemArchitecture
移到了STApp中,令人惊讶的是,它居然成功了。
当我把SystemArchitecture
放在EAR级库中时,我不确定出了什么问题
请帮忙
谢谢,
HANUMATSpring AOP在Spring之外无法工作。AOP的Spring实现基于动态代理,Springbean工厂将代理建议的类来注入切入点。您所追求的是所谓的“加载时编织”,即使用java代理拦截类加载器,并在加载时装饰建议的类。这是AspectJ功能,不是Spring AOP。请在此处阅读更多信息: Spring和AspectJ也可以一起使用,但仅限于Spring驱动的应用程序: 不过,若您想要“真正”的AOP,独立于Spring,那个么您需要使用加载时编织和AspectJ
编辑:可能误读了你的问题。你说只有当你把advice类放在struts应用程序中时,它才能在struts应用程序中工作。从中我了解到,您的Struts应用程序也是Spring驱动的。不知道你的配置就很难给出答案。具体来说,web.xml(两者都有)、application.xml和您的spring配置。感谢您的回复。很抱歉,我不允许在我的客户端网络之外共享任何代码,因此无法帮助进行详细配置。关于我的问题,我没有告诉您,当我将方面类放在ear级别时,我的Spring应用程序SPApp可以访问它,但Struts应用程序STApp不能。所以我很好奇为什么它不能为STApp工作,而它却可以为SPApp工作。好吧,我很抱歉。如果不了解您的配置,就很难进行进一步的分析。谢谢@pap,实际上我很抱歉没有为您提供所需的详细信息。一旦我找到了,我会尽力给出解决方案。