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

AOP 不会破坏原有程序的逻辑,很好的和业务逻辑进行隔离,耦合度低。

常用比如AOP 的日志记录。

1.pom加入AOP依赖包

<!--AOP切面 start--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!--AOP切面 end-->

2.建立LogAspect 类,该类必须在 主程序的扫包范围内

@Aspect
@Component
@Slf4j
public class LogAspect {@Pointcut("execution(public * 扫包路径..*.*(..))")public void LogHelp() {}@Pointcut("execution(public * 扫包路径..*.*(..))")public void LogErrorHelp() {}@Before("LogHelp()")public void doBefore(JoinPoint joinPoint) throws Throwable {// 接收到请求,记录请求内容ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request = attributes.getRequest();// 记录下请求内容System.out.println("URL : " + request.getRequestURL().toString());System.out.println("HTTP_METHOD : " + request.getMethod());System.out.println("IP : " + request.getRemoteAddr());System.out.println("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());System.out.println("ARGS : " + Arrays.toString(joinPoint.getArgs()));}@AfterReturning(returning = "ret", pointcut = "LogHelp()")public void doAfterReturning(Object ret) throws Throwable {// 处理完请求,返回内容System.out.println("方法的返回值 : " + ret);}@AfterThrowing("LogErrorHelp()")public void doAfterThrowing(JoinPoint jp) {System.out.println("方法异常时执行.....");System.out.println(jp.toString());}
}//end

转载于:https://www.cnblogs.com/hcfan/p/9888413.html

springBoot AOP切面编程相关推荐

  1. java切面类整合_SpringBoot2.x【五】整合AOP切面编程

    SpringBoot2.x[五]整合AOP切面编程 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关键单元是类,而在AOP中,模块化单元是方面. ...

  2. Springboot AOP切面

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

  3. SpringBoot2.0 基础案例(11):配置AOP切面编程,解决日志记录业务

    本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.AOP切面编程 1.什么是AOP编程 在软件业,AOP为Asp ...

  4. Aop切面编程原理和Spring实现

    Aop切面编程概念 AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等 AOP实现的原理就是动态代理,在有接口的情况下 ...

  5. Spring中的AOP切面编程的三种实现方式

    文章目录 Spring中的AOP切面编程的三种实现方式 1.最基本AOP的实现 a.引入jar包 b.编写通知类,这里以后置通知和环绕通知类为例子进行说明 c.在SpringIOC容器中配置 d.测试 ...

  6. SpringBoot面向切面编程-用AOP方式管理日志

    面向切面编程 认识AOP AOP(Aspect Oriented Program,面向切面编程)把业务功能分为核心.非核心两部分. 核心业务功能 非核心业务功能 用户登录,增加数据,删除数据 性能统计 ...

  7. springboot实现AOP切面编程

    概述 AOP(Aspect Oriented Programming) 即面向切面编程.面向切面是面向对象中的一种方式而已.在代码执行过程中,动态嵌入其他代码,叫做面向切面编程(将交叉业务逻辑封装成成 ...

  8. java 切面_实用|AOP切面编程手段大汇总

    点击上方"欧学长的架构成长之路" 关注我 前言 首先说一下什么是AOP? AOP就是面向切面编程,它是一个思想,通过切面,我们可以将那些反复出现的代码抽取出来,放在一个地方统一处理 ...

  9. Spring 框架基础(04):AOP切面编程概念,几种实现方式演示

    本文源码:GitHub·点这里 || GitEE·点这里 一.AOP基础简介 1.切面编程简介 AOP全称:Aspect Oriented Programming,面向切面编程.通过预编译方式和运行期 ...

最新文章

  1. controller不跳转页面的几个原因_狗狗为什么不睡觉?是这几个原因
  2. Windows Forms Programming In C# 读书笔记 - 第三章 Dialogs
  3. 隐藏和伪装端口banner
  4. Spring Bean InitializingBean和DisposableBean实例
  5. 20170914-构建之法:现代软件工程-阅读笔记
  6. 西交大计算机考博学术英语,2018年西安交通大学考博英语真题
  7. bzoj千题计划203:bzoj3994: [SDOI2015]约数个数和
  8. 从词袋到 Transfomer,NLP 十年突破史
  9. 主题:spring集成quartz,出现2次重复调用的问题
  10. 正则表达式之非捕获组
  11. 为什么要使用Keil MDK-ARM中间件库?
  12. 已解决(Python语法报错)SyntaxError invalid syntax
  13. java实战小结-Controller报错:Content type ‘multipart/form-data;boundary=----WebKitFormBoundaryxxxx not supp
  14. 高并发系统设计——API网关技术选型
  15. Java解析Lrc歌词
  16. EXCEL如何设置打印区域
  17. git 重置用户名和密码
  18. 英语:英语写作(200个单词)
  19. 物联网发展面临哪些问题
  20. 英特尔迅驰二代风尚盛典刮起酷炫风暴!

热门文章

  1. Javascript 获取页面高度(多种浏览器)【转】
  2. Java web程序中备份oracle数据库
  3. 存储过程中将sql语句结果赋值给变量
  4. 第三十二讲 ASP.NET网络打印
  5. CH341SER CH340SER USB转串口驱动
  6. 胡润2019中国人工智能企业百强榜:北京55家居首
  7. 玩cf出现outofmemory_《穿越火线》的肖枫原型是CF选手白鲨吗?
  8. springboot拦截器拦截提示_Springboot拦截器使用及其底层源码剖析
  9. WeakHashMap和四种引用总结:
  10. github创建项目_用了 GitHub 上这款开源神器后,创建项目文档变得 so easy!