3

次の構造を使用していますが、失敗していますが、プロキシ呼び出しの作成に失敗しています。

controller-servlet.xml 内

<context:component-scan base-package="com.controller" />
    <mvc:annotation-driven/>
    <mvc:resources mapping="/static/**" location="/static/" />    
    <mvc:default-servlet-handler/>

application-context.xml 内

<context:component-scan base-package="com.common" />
    <context:component-scan base-package="com.dao" />
    <mvc:annotation-driven/>

    <aop:aspectj-autoproxy />   

    <!-- Aspect Bean Definition 
    <bean id="aspectBean" class="com.common.AspectImple" /> -->

アスペクトクラス

package com.common;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class AspectImple {


    @Before("execution(* com.controller.JobController.*(..))")
        public void beforeImpl() {
           System.out.println("  Before Done ");
    }

}

コントローラ クラス

@Controller
    public class JobController {

        @RequestMapping(method = RequestMethod.GET, value = "/xyz")
        public ModelAndView abc(HttpServletRequest request,
            HttpServletResponse response) {
            ...
            m1(10);
            ...
            }
    }

    public void m1(int i){
        System.out.println(" AOP Done ");
    } 

AOP が機能しておらず、abc(..) & m1(..) メソッドの呼び出し中に beforeImpl() が呼び出されません。誰かがこの問題を解決するために私を助けてくれませんか。

4

3 に答える 3

0

注釈付きコントローラーに関する Spring AOP アドバイス - 良い答えです http://mergetag.com/spring-aop-advice-on-annotated-controllers-2/

于 2014-05-01T15:44:41.787 に答える