Spring AOP的一个具体例子
2023-09-14 09:03:08 时间
新建一个Logging类:
我希望我的业务类的Java代码的方法,在执行前,执行后,返回方法后,以及抛出异常后,能够执行一些hook代码。这些hook代码就写在这个Logging类的对应方法里:
- beforeAdvice
- afterAdvice
- afterReturningAdvice
- AfterThrowingAdvice
业务代码就是Student Bean:在这个MainApp.java里,调用了Student Bean的两个方法:getName和getAge. 我期望Logging类里定义的四个方法,可以被AOP织入。
Beans.xml的内容要点:
(1) 定义aop的命名空间:
(2) 定义一个aspect,ref属性指向logging Bean:
pointcut:连接点,指定哪些切入点应该被执行。ID为selectAll,结合expression表达式属性,说明期望logging的逻辑被织入所有advice并执行。
(3) 在com.sap.*下的所有bean的方法执行之前,执行logging bean的beforeAdvice方法。以此类推,在com.sap.*下的所有bean的方法执行之后但尚未返回时,执行logging bean的afterAdvice方法。
从调用栈观察到,Cglib也参与了pointcut的动态织入过程。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关文章
- Spring实战(第4版).pdf - 百度云资源
- spring boot: 在maven中装入springframework框架
- spring事务配置
- Spring IOC整理
- Spring Boot启动时数据库初始化spring.datasource(转)
- [Spring学习笔记 5 ] Spring AOP 详解1
- [Java Spring JWT] JWT example
- spring boot:用zxing生成二维码,支持logo(spring boot 2.3.2)
- [Spring学习笔记 4 ] AOP 概念原理以及java动态代理
- 配置spring整合jpa自动生成数据表
- Spring AOP编程-传统aop开发总结
- Spring中基于注解@AspectJ的AOP实现
- Java Spring源代码学习之how does component-scan work
- Java Spring AOP研究之Joint Point
- Spring Boot:定制static path mappings
- 【Spring笔记07】Spring中AOP的动态代理介绍
- 【Spring笔记06】Spring框架之AOP的介绍及使用
- Spring AOP
- @Value的使用 《Spring源码解析》java笔记
- 学习Spring Boot:(二十五)使用 Redis 实现数据缓存
- Spring学习总结(三)——Spring实现AOP的多种方式
- Spring注解方式实现任务调度
- 【Spring注解驱动开发】你敢信?面试官竟然让我现场搭建一个AOP测试环境!
- 【Spring注解驱动开发】困扰了我很久的AOP嵌套调用终于解决了!
- Spring技术内幕:Spring AOP的实现原理(一)
- Spring Cloud Alibaba微服务第11章之MyBatis-plus
- Spring Cloud使用Sleuth在应用中进行日志跟踪
- Spring声明式事务管理(基于XML方式实现)
- Spring使用AspectJ开发AOP:基于XML和基于Annotation
- 注册bean到spring容器,BeanDefinitionRegistryPostProcessor接口亮相