Совет не вызывается из struts 2 action?

Ниже я определяю аспект в 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 (просто для информации, я использую jar плагина struts2 spring). Я не в чем проблема со стойками 2?


person emilly    schedule 26.04.2013    source источник
comment
Недостаточно информации, чтобы помочь.   -  person Dave Newton    schedule 26.04.2013
comment
Чтобы Aspects работал, Spring должен проксировать рекомендуемые классы, делает ли он это?   -  person Sotirios Delimanolis    schedule 26.04.2013
comment
Чтобы сделать то, что объясняет Сотириос, вам нужно добавить плагин struts2-spring-plugin и следовать документации, чтобы использовать spring для создания внутренних объектов Struts2. Затем к действиям будет применена магия весны, поскольку Spring будет их создавать.   -  person Quaternion    schedule 27.04.2013


Ответы (1)


Добавьте плагин struts2-sping в свой проект.

Добавьте следующее в 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 настроен правильно).

person Quaternion    schedule 28.04.2013