使用aop拦截请求返回信息

来源:互联网 发布:带windows系统的平板 编辑:程序博客网 时间:2024/06/03 17:34

@Pointcut(
“execution(public * com.mobcb.platform.service..controller...*(..)) ”
+ “@annotation(org.springframework.web.bind.annotation.RequestMapping)”)
public void doFilter() {

}

使用这个注解,将切点确定在某个包下的所有类中,然后@annotation注解将reqMapping注解确定,
将他在dofilter方法开面做操作

@Around(“doFilter()”)
spring aop中@Around @Before @After三个注解的区别@Before是在所拦截方法执行之前执行一段逻辑。@After 是在所拦截方法执行之后执行一段逻辑。@Around是可以同时在所拦截方法的前后执行一段逻辑。

[Java]代码

package com.itsoft.action;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.stereotype.Controller;/** *  * @author zxf * 演示aop测试类 */@Controllerpublic class UserAction {    public void queryUsers(){        System.out.println("查询所有用户【all users list】");    }    public static void main(String[] args) {        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("application-aop.xml");        UserAction userAction = (UserAction)ctx.getBean("userAction");        userAction.queryUsers();        ctx.destroy();    }}
package com.itsoft;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;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.springframework.stereotype.Component;/** *  * @author Administrator * 通过aop拦截后执行具体操作 */@Aspect@Componentpublic class LogIntercept {    @Pointcut("execution(public * com.itsoft.action..*.*(..))")    public void recordLog(){}    @Before("recordLog()")    public void before() {        this.printLog("已经记录下操作日志@Before 方法执行前");    }    @Around("recordLog()")    public void around(ProceedingJoinPoint pjp) throws Throwable{        this.printLog("已经记录下操作日志@Around 方法执行前");        pjp.proceed();        this.printLog("已经记录下操作日志@Around 方法执行后");    }    @After("recordLog()")    public void after() {        this.printLog("已经记录下操作日志@After 方法执行后");    }    private void printLog(String str){        System.out.println(str);    }}
原创粉丝点击