ホームページ > 記事 > ウェブフロントエンド > AOP ページは、controller_html/css_WEB-ITnose には適用されません。
問題は次のとおりです
今日、コントローラーでaopが使えないことが分かりました。serviceに置き換えれば使えるようになります。junit-testでも使えますが、tomcatの下に置くことはできません。 。 私は混乱しています! ! !
package com.tutor.normal.filter;import javax.annotation.Resource;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.tutor.normal.service.ITutorUserService;/** * * @author jinghao.liang * */@Aspectpublic class TutorLoginAop { private static Logger log = LoggerFactory.getLogger(TutorLoginAop.class); @Resource(name = "tutorUserService") private ITutorUserService tutorUserService; @Pointcut("execution(* com.tutor.normal.controller..*.*(..))") private void anyMethod() { }// 定义一个切入点 @Before("anyMethod() && args(name)") public void doAccessCheck(String name) { System.out.println(name); System.out.println("前置通知"); } @AfterReturning("anyMethod()") public void doAfter() { System.out.println("后置通知"); } @After("anyMethod()") public void after() { System.out.println("最终通知"); } @AfterThrowing("anyMethod()") public void doAfterThrow() { System.out.println("例外通知"); } @Around("anyMethod()") public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable { System.out.println("进入环绕通知"); Object object = pjp.proceed();// 执行该方法 System.out.println("退出方法"); return object; }}
スプリング構成に加えて、これら 2 つ
<aop:aspectj-autoproxy proxy-target-class="true"/> <bean id="tutorLoginAop" class="com.tutor.normal.filter.TutorLoginAop" />
Nima、明らかにインターネット上のものと同じですが、状況はどうですか
1 日トラブルシューティングを行った後、最終的に問題が見つかりました。 Spring の設定は Spring ではなく springMVC で記述する必要があるということ
それはどういう意味ですか?私の web.xml の構成を見てください
うわー構成を applicationContext.xml に書いたことがわかりましたが、当然、TVT は spring-servlet.xml に記述する必要があります。 。 。