aop页面在controller里面不适用_html/css_WEB-ITnose

WBOY
풀어 주다: 2016-06-24 11:51:01
원래의
1006명이 탐색했습니다.

问题如下

今天发现aop不能在controller里面不能用,换成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;    }}
로그인 후 복사

spring配置,加上这两个

    <aop:aspectj-autoproxy proxy-target-class="true"/>         <bean id="tutorLoginAop" class="com.tutor.normal.filter.TutorLoginAop" />
로그인 후 복사

尼玛吖,明明和网上的一样吖,到底什么情况


经过一天的排查终于找到问题了,原来是spring的配置应该写到springMVC里,而不是spring里面

什么意思呢?看我web.xml的配置

     <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath*:spring/applicationContext.xml</param-value>    </context-param>    <!-- Spring MVC -->    <servlet>        <servlet-name>springMVC</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:spring/spring-servlet.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>springMVC</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping>
로그인 후 복사

原来我把配置写到了applicationContext.xml里面当然不行啦TVT,要写到spring-servlet.xml这个里面。。。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿