欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

SpringBoot-AOP切面处理

发布时间:2024/4/14 javascript 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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切面处理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。