学习java第四十三天

Spring AOP相关术语

(1)切面(Aspect):切面是通知和切点的结合。通知和切点共同定义了切面的全部内容。

(2)连接点(Join point):指方法,在Spring AOP中,一个连接点总是代表一个方法的执行。连接点是在应用执行过程中能够插入切面的一个点。这个点可以是调用方法时、抛出异常时、甚至修改一个字段时。切面代码可以利用这些点插入到应用的正常流程之中,并添加新的行为。

(3)通知(Advice):在AOP术语中,切面的工作被称为通知。

(4)切入点(Pointcut):切点的定义会匹配通知所要织入的一个或多个连接点。我们通常使用明确的类和方法名称,或是利用正则表达式定义所匹配的类和方法名称来指定这些切点。

(5)引入(Introduction):引入允许我们向现有类添加新方法或属性。

(6)目标对象(Target Object): 被一个或者多个切面(aspect)所通知(advise)的对象。它通常是一个代理对象。

(7)织入(Weaving):织入是把切面应用到目标对象并创建新的代理对象的过程。在目标对象的生命周期里有以下时间点可以进行织入:

编译期:切面在目标类编译时被织入。AspectJ的织入编译器是以这种方式织入切面的。

类加载期:切面在目标类加载到JVM时被织入。需要特殊的类加载器,它可以在目标类被引入应用之前增强该目标类的字节码。AspectJ5的加载时织入就支持以这种方式织入切面。

运行期:切面在应用运行的某个时刻被织入。一般情况下,在织入切面时,AOP容器会为目标对象动态地创建一个代理对象。SpringAOP就是以这种方式织入切面。

BeanFactory和FactoryBean的区别?

BeanFactory:管理Bean的容器,Spring中生成的Bean都是由这个接口的实现来管理的。

FactoryBean:通常是用来创建比较复杂的bean,一般的bean 直接用xml配置即可,但如果一个bean的创建过程中涉及到很多其他的bean 和复杂的逻辑,直接用xml配置比较麻烦,这时可以考虑用FactoryBean,可以隐藏实例化复杂Bean的细节。

当配置文件中bean标签的class属性配置的实现类是FactoryBean时,通过 getBean()方法返回的不是FactoryBean本身,而是调用FactoryBean#getObject()方法所返回的对象,相当于FactoryBean#getObject()代理了getBean()方法。如果想得到FactoryBean必须使用 '&' + beanName 的方式获取。

相关推荐
风_流沙几秒前
【python基础】python中copy用法
开发语言·python
言之。5 分钟前
【微服务】6、限流 熔断
java·微服务·架构
水水阿水水16 分钟前
第二章:面向对象之封装(一)
开发语言·c++·算法
Yang-Never23 分钟前
Canvas->Bitmap绘制
android·java·开发语言·kotlin·android studio·idea
纪伊路上盛名在29 分钟前
从视频中截取ppt,整理为pdf
笔记·学习·计算机视觉·pdf·powerpoint·音视频·学习方法
曦月合一35 分钟前
java中日期如何比大小
java·开发语言·后端
初学者丶一起加油42 分钟前
C语言基础:野指针、空指针、空悬指针
java·linux·c语言·开发语言·数据结构·算法·vim
L_090743 分钟前
【C】编译与链接
c语言·开发语言
ZWZhangYu1 小时前
【Arthas命令实践】heapdump实现原理
java·开发语言·python
扶梦4111 小时前
腾讯云AI代码助手编程挑战赛-解忧助手
java·linux·数据库