我正在使用以下結構,但失敗但未能創建代理服務器調用。Spring AOP與MVC結構不兼容
在控制器servlet.xml中
<context:component-scan base-package="com.controller" />
<mvc:annotation-driven/>
<mvc:resources mapping="/static/**" location="/static/" />
<mvc:default-servlet-handler/>
在應用程序的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類
@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()沒有被調用。有人可以幫我解決這個問題。
yes。我的Maven依賴於AOP .. \t \t \t org.aspectj \t \t \t aspectjrt \t \t \t 1.6.12 \t \t \t \t \t \t \t org.aspectj \t \t \t aspectjweaver \t \t \t 1.6.12 \t \t \t \t \t \t \t CGLIB \t \t \t CGLIB的節點p \t \t \t 2。2 \t \t –
對不起,我無法正確編輯它。 Aspectjrt,Aspectjweaver和cglib已被使用 –
既不在abc()也不在m1()上工作? – Hippoom