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切面处理相关推荐

  1. Springboot AOP切面

    文章目录 SpringBoot Aop 切面(Aop) 一.什么是切面 二.切面的用途 三.AOP切面常用注解 四.详细内容 1.切面(Aspect) 2.连接点(Joinpoint) 3.通知(Ad ...

  2. springBoot AOP切面编程

    AOP 为 Aspect Oriented Programming 的缩写,意为 面向切面编程.AOP 为spring 中的一个重要内容,它是通过对既有程序定义一个切入点,然后在其前后切入不同的执行内 ...

  3. Spring AOP切面使用详细解析

    相关文章: SpringBoot AOP切面的使用 一步一步手绘Spring AOP运行时序图(Spring AOP 源码分析) 架构师系列内容:架构师学习笔记(持续更新)) Spring AOP 应 ...

  4. aop springboot 传入参数_java相关:springboot配置aop切面日志打印过程解析

    java相关:springboot配置aop切面日志打印过程解析 发布于 2020-3-31| 复制链接 摘记: 这篇文章主要介绍了springboot配置aop切面日志打印过程解析,文中通过示例代码 ...

  5. SpringBoot:切面AOP实现权限校验:实例演示与注解全解

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 目录 理解AOP 什么是AOP AOP体系与概念 AOP实例 第一个实例 ...

  6. java 切面 不执行,解决springboot的aop切面不起作用问题(失效的排查)

    检查下springboot的启动类是否开启扫描 @springbootapplication @componentscan(basepackages = {"com.zhangpu.spri ...

  7. springboot+aop+自定义注解,打造通用的全局异常处理和参数校验切面(通用版)

    springboot+aop+自定义注解,打造通用的全局异常处理和参数校验切面(通用版) 参考文章: (1)springboot+aop+自定义注解,打造通用的全局异常处理和参数校验切面(通用版) ( ...

  8. SpringBoot之AOP切面的使用

    相关文章: Spring AOP切面使用详细解析 SpringBoot之Listener注册到Spring容器中的多种方法 SpringBoot之Interceptor拦截器注入使用 SpringBo ...

  9. springboot之aop切面获取请求

    springboot之aop切面获取请求 项目场景: 在学习springboot的博客开发中,通过aop切面,对博客中的操作进行记录 问题描述: 问题: 在切面方法中,无法获取请求的参数和类名,方法, ...

  10. Springboot整合多数据源(自定义注解+aop切面实现)

    原理: 通过后台配置多个数据源,自定义注解,通过aop配置注解切面,前端调用需要传递数据源参数,根据判断数据源参数,调用相应的service或mapper方法. 实现: 准备俩个数据库:俩张表 表sq ...

最新文章

  1. Android ViewPager使用具体解释
  2. 【ES6】JS的Set和Map数据结构
  3. sharding jdbc sql路由日志
  4. Makefile文件的使用
  5. format 转化时间格式不起作用
  6. faked 一个用于 mock 后端 API 的轻量工具
  7. Mysql中遇到的错误
  8. Spring Boot Actuator监控关闭
  9. 85后转行java,一名85后阿里老程序员的真心话
  10. getgrgid()函数
  11. 程序结构程序设计(三) ——递归及递归举例
  12. 奇异值分解(SVD)和最小二乘解在解齐次线性超定方程中的应用
  13. diffpatch升级_Tinker资源补丁原理解析
  14. 深度强化学习从入门到大师_深度学习大师的经验教训
  15. ORL人脸识别tensorflow实现
  16. halcon 缺陷检测 药片检测(有无)
  17. 蒲公英内侧:项目打包成ipa文件,创建证书和描述文件流程
  18. js网页3D雪花特效插件(导入直接使用,参数齐全)
  19. 为什么你在公司说话没分量,得不到别人的重视?
  20. 剑网3:指尖江湖电脑版,如何用模拟器玩

热门文章

  1. 【Android】资源加载过程
  2. Android 创建新Project时报错 Cannot create linked resource
  3. iOS self 和 super 学习
  4. (五)Docker查看容器ip及指定固定IP
  5. 如何实现不安装xpoedinstall激活xposed模块
  6. 基于react开发package.json的配置
  7. Quartz执行周期配置
  8. portal for arcgis 10.4的安装和配置及遇到的问题
  9. 第二十八章 springboot + zipkin(brave定制-AsyncHttpClient)
  10. tcp3次握手,https加密,ca认证