当前位置:
首页 >
前端技术
> javascript
>内容正文
javascript
SpringBoot-AOP切面处理
生活随笔
收集整理的这篇文章主要介绍了
SpringBoot-AOP切面处理
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
2019独角兽企业重金招聘Python工程师标准>>>
应用Spring的过程中,最大最核心的必须要数AOP啦,比如,向同一水平面上的相同业务操作,我们就可以使用AOP来完成,快速方便,简单安全;如拦截,验证,或者SpringMVC中的事物AOP配置等等..,
1: 首先引入jar包
<dependency><!-- AOP面向切面 --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>2: 编写切面类
package com.gy.demo.common.aspect;import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes;/*** Description: HTTP请求拦截* 面向切面: AOP* 注解: @Component : 将类注入到Spring容器中;* 注解: @Aspect : 声明AOP处理* 注解: @Pointcut : 声明拦截地址* 注解: @Before : 在Value中的方法 之前 都进行拦截* 注解: @After : 在Value中的方法 之后 都进行拦截* 注解: @AfterReturning : 在Value中的方法 之后 都进行拦截,并获取返回的数据* @author geYang* @since 2017/12/28**/ @Aspect @Component public class HttpAspect {private final static Logger logger = LoggerFactory.getLogger(HttpAspect.class);@Pointcut("execution(public * com.gy.demo.controller.*.*.*(..))")public void logger(){}@Before("logger()")public void doBefore(JoinPoint joinPoint){ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = servletRequestAttributes.getRequest();//iplogger.info("user_ip={}",request.getRemoteAddr());//urllogger.info("request_url={}",request.getRequestURL());//methodlogger.info("request_method={}",request.getMethod());//类方法logger.info("class_method={}",joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName());//参数logger.info("request_param={}",joinPoint.getArgs());}@After("logger()")public void doAfter(){logger.info("出来了");}@AfterReturning(returning = "object",pointcut = "logger()")public void doAfterReturning(Object object){logger.info("response={}",object==null?null:object.toString());}}启动项目,访问Controller就会看到拦截信息;
参考: https://www.imooc.com/video/14341
项目源码: https://gitee.com/ge.yang/SpringBoot
转载于:https://my.oschina.net/u/3681868/blog/1595947
总结
以上是生活随笔为你收集整理的SpringBoot-AOP切面处理的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: viewport,html,body在p
- 下一篇: Spring Cloud构建微服务