![](https://img-blog.csdnimg.cn/3424fe1273bd474e97d71827681f46d6.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring Framework
文章平均质量分 89
Spring Framework 学习笔记
海鸟不会飞
人生的成功不在于拿到一手好牌,而是要考虑怎么能把坏牌打好。
展开
-
Spring 推断构造方法
如果采用AnnotationConfigApplicationContext创建Spring容器时,Spring会根据构造方法的参数信息去寻找bean,然后传给构造方法、如果采用ClassPathXMLApplicationContext创建Spring容器时,表示使用XML的方式来使用bean,要么在XML中指定构造方法的参数值(,@Autowired注解可以写在构造方法上,在构造方法上写@autowired注解,表示开发者指定采用这个构造方法,Spring通过。原创 2023-03-24 14:25:07 · 267 阅读 · 0 评论 -
Spring 循环依赖
如果当前Bean没有出现循环依赖,那么这个Lambda表达式没用,当前bean按照自己的生命周期正常执行,执行完后直接把当前bean放入singletonObjects中,如果当前bean在依赖注入时发现出现了循环依赖(当前正在创建的bean被其他bean依赖了),则从三级缓存中拿到Lambda表达式,并执行Lambda表达式得到一个对象,并把得到的对象放入二级缓存((如果当前Bean需要AOP,那么执行lambda表达式,得到就是对应的代理对象,如果无需AOP,则直接得到一个原始对象))。原创 2023-03-24 08:54:27 · 1162 阅读 · 0 评论 -
Spring Bean 依赖注入
Spring 通过constructor构造方法来注入,就可以不写set方法,Spring利用构造方法的参数信息从Spring容器中去找bean,找到bean之后作为参数传给构造方法,从而实例化得到一个bean对象,并完成属性赋值。作为缓存,比如如果当前Bean是原型Bean,那么下次再来创建该Bean时,就可以直接拿缓存的结果对象beanName去BeanFactory中去拿bean对象了,不用再次进行查找了。Spring底层在创建Bean的过程中,在填充属性时,会去解析当前类,原创 2023-03-22 18:02:26 · 410 阅读 · 0 评论 -
Spring Bean 创建过程
在这个步骤会根据BeanDefinition去创建一个对象了,在Bean对象创建的过程中会经过三个过程去实例化:首先会判断BeanDefinition中是否设置了Supplier,如果设置了则调用Supplier的get()得到对象、没有设置Supplier则检查BeanDefinition中是否设置了工厂方法(factoryMethod),如果设置了工厂方法则调用工厂方法得到对象、最后调用推断构造方法获取对象。在Spring Bean对象实例化之前的扩展点是。原创 2023-03-22 17:49:29 · 322 阅读 · 0 评论 -
Spring Bean对象扫描生成BeanDefinition流程
判断当前BeanName是否在Spring容器中已经存证,如果不存在则把beanName以及BeanDefinition注册到Spring容器中,如果存证则抛出异常。某个类上是否存在@Conditional注解,如果存在则调用注解中所指定的类的match方法进行匹配,匹配成功则通过筛选,匹配失败则pass掉。将扫描Bean的BeanDefinition注册到Spring容器中的BeanDefinitionMap中。默认情况下,Spring会有一个@Component注解的includeFilter。原创 2023-03-20 16:00:16 · 273 阅读 · 0 评论