![](https://img-blog.csdnimg.cn/direct/3815d5cf055c484b96561cb4819ebbad.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring
文章平均质量分 94
本专栏主要介绍spring功能的使用,以及spring内部源码剖析,感受spring编程魅力
菜腿1994
这个作者很懒,什么都没留下…
展开
-
Spring之CGLIB和JDK动态代理底层实现
Spring会自动在JDK动态代理和CGLIB之间转换:1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP3、如果目标对象没有实现了接口,必须采用CGLIB库本文主要讲解CGLIB和JDK动态代理的使用和底层原理。原创 2024-04-17 23:50:34 · 1115 阅读 · 2 评论 -
Spring拓展点ConfigurationClassPostProcessor解析流程
ConfigurationClassPostProcessor是一个bean工厂的后置处理器,它重写了两个方法,最重要的方法是postProcessBeanDefinitionRegistry,主要是解析配置类,生成BeanDefinition注册到bean工厂中。原创 2024-04-08 23:31:15 · 47 阅读 · 0 评论 -
Spring拓展点之SmartLifecycle如何感知容器启动和关闭
Spring拓展点SmartLifecycle在容器启动阶段实例化所有单例对象后,获取所有实现SmartLifecycle的类,执行start方法;在容器关闭时,先获取所有实现SmartLifecycle的类,执行stop方法,最后清除所有单例对象。原创 2024-04-03 22:22:16 · 1288 阅读 · 4 评论 -
Spring之Bean生命周期流程详解
BeanDefinition合并之后,就可以去创建Bean对象了,而创建Bean就必须实例化对象,而实例化就必须先加载当前BeanDefinition所对应的class,在AbstractAutowireCapableBeanFactory类的。如果beanClass属性的类型是Class,那么就直接返回,如果不是,则会根据类名进行加载(doResolveBeanClass方法所做的事情)会利用BeanFactory所设置的类加载器来加载类,如果没有设置,则默认使用。主要是推断构造函数去生成一个对象。原创 2023-11-07 23:55:09 · 198 阅读 · 0 评论 -
Spring依赖注入之@autowire注解详解
主要了解@autowire注解的底层逻辑,参与了bean生命周期的哪个阶段,如何实现注入原创 2023-11-21 23:20:41 · 470 阅读 · 0 评论 -
Spring注解@EventListener实现监听原理
@EventListener实现原理主要通过EventListenerMethodProcessor和DefaultEventListenerFactory这两个类实现。EventListenerMethodProcessor的作用是识别所有使用eventListener注解的方法DefaultEventListenerFactory将EventListenerMethodProcessor识别出的方法封装成为监听器类以代码new AnnotationConfigApplicationContext为入原创 2024-03-31 18:43:17 · 1331 阅读 · 0 评论 -
仿spring-framework源码实现手写一个IOC容器
第一步根据扫描路径获取类信息即bean定义,第二步实例化容器中单粒bean,实例化过程分为5步1.根据构造函数new对象 2.依赖注入 3.初始化前【介绍了postcontruct和后置处理器两种方式】4.初始化-主要是实现了InitializingBean方法 5.初始化后-主要是进行AOP过程,实例化后加到单例对象集合singletonObjects。原创 2023-11-06 00:00:36 · 110 阅读 · 0 评论 -
Spring之ApplicationListener实现监听原理
ApplicationListener实现监听的原理就是使用了ApplicationListenerDetector类,这是一个bean后置处理器,在容器启动中,ApplicationListenerDetector先被实例化,然后实例化其他非懒加载的bean对象时,ApplicationListenerDetector会作用于这些非懒加载的bean对象,判断对象是否实现了ApplicationListener接口,若实现了则注册到容器的监听器列表中。原创 2024-04-02 13:41:04 · 1172 阅读 · 0 评论 -
Spring之BeanFactoryPostProcessor详解
BeanFactoryProcessor是spring的一个拓展点,它的作用时机是在加载完所有的beanDefinition,还未实例化前。可以对beanDefinition进行加工,但是不可以加载beanDefinition。BeanDefinitionRegistryPostProcessor是BeanFactoryProcessor的子接口,增强了功能,既可以对beanDefinition加工,还可以加载自定义的beanDefinition。原创 2024-04-02 23:33:15 · 954 阅读 · 0 评论 -
Spring入门(一)——从工厂实例中感知spring的IOC
前言 spring框架核心作用是IOC和AOP,刚开始接触感觉他的作用和工厂方法+配置文件的方式特别的像,但是他看起来内容总结原创 2017-07-09 21:44:03 · 438 阅读 · 12 评论 -
【Spring进阶一】——静态代理和动态代理的理解
Java 静态代理静态代理通常用于对原有业务逻辑的扩充。比如持有二方包的某个类,并调用了其中的某些方法。然后出于某种原因,比如记录日志、打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里。所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理类方法...转载 2018-06-17 17:37:22 · 1147 阅读 · 9 评论 -
Spring入门(二)——理解spring的AOP编程
【前言】 AOP的编程思想在以前的项目中接触,它弥补了面向对象编程OO的不足,除了类之外,AOP提供了切面,将关注点进行模块化作为一种独立的服务横向“插入”到项目中去。 【内容】 1.spring的AOP: 提供声明式企业服务,最重要的服务是:声明性事务管理 允许用户实现自定义的切面,用AOP来完善了OOP的使用。 2.AOP的切面术语: ♤切面原创 2017-07-16 21:08:12 · 441 阅读 · 16 评论 -
Spring依赖注入之循环依赖问题详解
对象A依赖对象B,对象B依赖对象A,这是一种常见的依赖关系。为什么spring会有循环依赖问题?spring是怎么解决循环依赖问题原创 2023-11-21 15:25:27 · 458 阅读 · 0 评论