2

下面我在 aop.xml 中定义了方面

<aspects>
      <aspect name="com.customer.MyCustomAspect" />
 </aspects>

我的自定义方面定义如下

    @Aspect
    public class MyCustomAspect{
        @Around("@annotation(requiredPrivilege)")
            public Object myAdvice(ProceedingJoinPoint pjp) throws Throwable {

    }

现在,当我从 struts 2 操作调用任何服务方法时,不会调用 myAdvice。一切都适用于我的遗留动作,但不适用于 struts 2 动作(仅供参考,我正在使用 struts2 spring 插件 jar)。我不是struts 2有什么问题吗?

4

1 回答 1

1

将 struts2-sping-plugin 添加到您的项目中。

将以下内容添加到 struts.xml...

<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />

更多信息参见: http ://struts.apache.org/release/2.0.x/docs/spring-plugin.html

由于 spring 现在负责对象创建,它现在能够执行它的 spring AOP 魔法(假设 spring 配置正确)。

于 2013-04-28T18:51:53.650 回答