次の構造を使用していますが、失敗していますが、プロキシ呼び出しの作成に失敗しています。
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() が呼び出されません。誰かがこの問題を解決するために私を助けてくれませんか。