我有一个使用Struts 1创建的应用程序,它需要一些听觉,所以我想要的是使用方面,所以我不需要更改类,而是“拦截”对方法的调用。
我正在尝试使用Spring AOP + Aspectj集成,但首先我需要集成Struts和Spring。我一直在尝试使用几个教程和类似的问题,但显然它们主要用于Struts 2。
更具体地说,我这样做:
的web.xml
0.x.x
的applicationContext.xml
...
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
...
LoggerAspect.java
<context:component-scan base-package="com.app"/>
<context:annotation-config/>
<aop:aspectj-autoproxy />
<bean id="loggerAspect" class="com.app.util.LoggerAspect"/>
的pom.xml
@Aspect
public class LoggerAspect {
@Before("execution(* com.app.action.FileAction.list(..))")
public void test(JoinPoint joinPoint) {
System.out.println("Calling: " + joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName());
}
}
我没有对 struts-config.xml 文件做任何事情。服务器加载应用程序没有任何问题,但Spring没有加载,所以方面。
如何解决这个问题?
答案 0 :(得分:1)
如果您想将AOP应用于传统的非Spring应用程序,那么您不会因为Spring AOP而引入Spring。您可以直接使用AspectJ,并在此处有几个选项:
AspectJ比Spring AOP更强大,更快(没有代理)并且完全独立于Spring。这就是你想要使用的。