Spring aop

来源:互联网 发布:徽标在线制作软件 编辑:程序博客网 时间:2024/06/01 10:06

aop 面向切面,所有业务都要处理的业务

/** * Created by Administrator on 2017/7/18. */@Aspect@Componentpublic class HttpAspect {    private final static Logger logger = LoggerFactory.getLogger(HttpAspect.class);    /**     * 共用方法,面向切面方法     */    @Pointcut("execution(public * com.stark.controller.*Controller.*(..))")    public void log(){         logger.info("log.....");    }    /**     * 控制层执行之前执行doBefore     */    @Before("log()")    public void doBefore(JoinPoint joinPoint){        logger.info("before.....");        ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();        HttpServletRequest request = attributes.getRequest();        // url        logger.info("url={}", request.getRequestURL());        // method        logger.info("method={}", request.getMethod());        // ip        logger.info("id={}", request.getRemoteAddr());        // 类方法        logger.info("class_Method={}", joinPoint.getSignature().getDeclaringTypeName()+'.'+joinPoint.getSignature().getName() );        // 参数        logger.info("args={}", joinPoint.getArgs());    }    /**     * 控制层执行结束后执行doAfter     */    @After("log()")    public void doAfter(){        logger.info("after....");    }    /**     * 执行结束后返回的结果打印出来     * @param object     */    @AfterReturning(returning = "object", pointcut = "log()")    public void doAfterReturn(Object object){//        logger.info("response={}", object.toString());    }}
原创粉丝点击