
源码学习
文章平均质量分 91
uptonhuang
这个作者很懒,什么都没留下…
展开
-
Spring AOP(面向切面)介绍以及示例(@Before @Around @After @AfterReturning @AfrerThrowing)
1、什么是面向切面(AOP)在使用面向切面之前我们要理解一下面向对象和面向切面这两个概念。面向对象就是提取公共特征进行抽象化,比如,不管是男人还是女人,它们都有年龄、名字等属性,那么就可以把这些属性以及相同的方法(如get、set)抽取到父类中,是一种纵向的抽取。面向切面,就是将一些逻辑通过横向切割的方式抽取到一个独立的模块,业务只需要关注自身的逻辑,在运行业务时,由程序将这些逻辑织入,是一种横向的抽取。比如假设数据库操作之前需要编写日志,这时可以对修改每个函数添加写日志操作,为了提升代码复用可以进原创 2021-03-31 17:47:36 · 4002 阅读 · 0 评论 -
Spring AOP中使用的JDK动态代理与CGLib动态代理
最近在看Spring AOP,里面使用到了动态代理,自己对两种代理模式进行了学习,这里做个总结。本文主要介绍动态代理,开始之前还是先介绍一下代理的相关内容。一、代理代理分为静态代理和动态代理,无论哪种代理,它们都是为了对目标方法进行增强,让增强的动作和目标动态分开,达到解耦的目的。目标类可以只关注业务,而不关注其他的东西,比如添加用户时,只关注业务实现,不关注谁调用相关的日志输出等操作。1、静态代理其实就是创建一个代理类去继承目标类,在代理类中重写目标方法,添加增强动作的同时对目标方法进行使用。下面原创 2021-02-18 19:08:43 · 2244 阅读 · 0 评论 -
Spring的Orderd接口以及@Order、@Primary、@Priority三个注解介绍
今天要来说一下Orderd接口以及@Order、@Primary、@Priority注解这几个东西,原本只是想介绍一下@Order,但是这几个有一定的关联,因此这里一起进行介绍。这几个接口是用来排序,本文主要介绍用法,具体的比如Spring什么时候对他们排序啊,后面在介绍Spring的处理过程的时候再介绍,还有怎么排序的这些比较好理解的也不介绍了。1、如何发现Orderd接口以及@Order、@Primary、@Priority在前面文章说过要通过一些常用的注解以及在学习过程中不断的发现,因此这里我还是原创 2021-02-16 20:59:07 · 10151 阅读 · 2 评论