![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring 源码阅读
文章平均质量分 93
记录阅读Spring源码细节,拒绝做只会写业务代码的蒟蒻。
u一枚蒟蒻
花开堪折直须折
展开
-
Spring Boot v2.4.4源码解析(十)依赖注入原理下 —— 依赖解析
从《[Spring Boot v2.4.4源码解析(八)依赖注入原理上 —— 由一道面试题引起的思考《@Autowired和@Resource的区别》?](https://blog.csdn.net/u010141779/article/details/124269175)》可以看出,解析待注入字段或参数主要由 `org.springframework.beans.factory.support.DefaultListableBeanFactory#resolveDependency(org.springf原创 2022-05-09 09:20:09 · 437 阅读 · 1 评论 -
Spring Boot v2.4.4源码解析(八)依赖注入原理上 —— 由一道面试题引起的思考《@Autowired和@Resource的区别》?
@Autowired 和 @Resource 属性注入分别是由 AutowiredAnnotationBeanPostProcessor 和 CommonAnnotationBeanPostProcessor 处理,本文将从源码出发,解析这两种注解对属性注入区别。先看下 @Autowired 属性是如何注入的,AutowiredAnnotationBeanPostProcessor UML 类图如下从图中可以看出,其实现 MergedBeanDefinitionPostProcessor 接口,在该接原创 2022-05-09 09:19:06 · 395 阅读 · 1 评论 -
Spring Boot v2.4.4源码解析(九)依赖注入@Autowired注解使用方式
Spring 依赖注入原创 2022-04-28 09:03:28 · 630 阅读 · 0 评论 -
Spring Boot v2.4.4源码解析(七)Bean 后置处理器 —— BeanPostProcessor管理机制
Bean后置处理器,该接口及其子接口可以在Bean生命周期中实现Bean实例定制化功能。Spring Bean 属性赋值、AOP代理等功能均是通过该接口实现,该接口重要性可见一斑。原创 2022-04-12 19:53:26 · 1271 阅读 · 0 评论 -
Spring Boot v2.4.4源码解析(六)属性绑定篇上 —— 类型安全配置属性
Spring Boot 属性绑定一、概述在Spring Boot下开发某个模块,如果这个模块配置属性比较多而且具有层级关系,使用@Value("${property}")注解依次注入这些属性显得比较麻烦。Spring Boot提供了另一种替代方案,可以使用@ConfigurationProperties注解将这些属性绑定到类上。例如,Mybatis将配置属性绑定到MybatisProperties类上:@ConfigurationProperties(prefix = MybatisProperti原创 2021-11-26 10:11:57 · 883 阅读 · 3 评论 -
Spring Boot v2.4.4源码解析(五)配置文件加载上 —— 2.4版本与2.3版本差异
Spring Boot 2.4版本与2.3版本处理配置文件差异原创 2021-11-16 14:29:51 · 2993 阅读 · 3 评论 -
Spring Boot v2.4.4源码解析(四)事件机制篇下
Spring Boot事件发布及监听机制事件驱动模型可以最大程度减少耦合度,而Spring拥有一套完善的事件发布与处理机制。在Spring中想完成一个完整的面向事件编程,需要以下三个步骤:自定义一个事件,该事件需要继承ApplicationEvent,参考Spring Boot v2.4.4源码解析(三)事件机制上;事件发布者注入ApplicationEventPublisher对象,用于发布事件;事件监听者实现ApplicationListener接口,或者使用@EventListener注解(原创 2021-11-08 09:00:50 · 1505 阅读 · 6 评论 -
Spring Boot v2.4.4源码解析(三)事件机制篇上
Spring Boot事件发布与订阅机制Spring boot启动方法SpringApplication#run(String...)中有很多关键时间节点:public ConfigurableApplicationContext run(String... args) { // ... SpringApplicationRunListeners listeners = getRunListeners(args); listeners.starting(bootstrapContext, t原创 2021-11-02 11:02:12 · 1619 阅读 · 4 评论 -
Spring Boot v2.4.4源码解析(二)运行时环境Environment
Spring Boot当前引用运行环境Environment原创 2021-10-29 22:55:50 · 1782 阅读 · 2 评论 -
从源码角度解析Spring Bean 生命周期
Spring Bean生命周期是Spring中重要知识点,对于Bean的拓展十分重要。但想要完全记住整个生命周期并不容易,本文从源码入手解析Spring Bean的生命周期,结合示意图,比较容易记忆。首先,为方便记忆,将Bean的生命周期主要分为四个阶段,然后在这四个阶段之间穿插各种拓展点。这四类分别是:Instantiation 实例化Populate 属性赋值Initialization 初始化Destruction 销毁源码的入口在org.springframework.beans原创 2021-05-08 00:10:51 · 1249 阅读 · 0 评论 -
Spring Boot v2.4.4源码解析(一)字符串占位符解析器 PropertyPlaceholderHelper
Spring属性占位符解析器 PropertyPlaceholderHelper源码阅读PropertyPlaceholderHelper 用于处理字符串中"${}"这种占位符,比如通过@Value(“${}”) 注解获取对应属性文件中定义的属性值等(但不能处理@Value(“#{}”) , 表示通过SpEL表达式通常用来获取bean的属性)。该类是一个单纯的工具类,没有继承没有实现,而且简单无依赖,没有依赖Spring框架其他的任何类。先看下该类如何使用。该类主要构造函数如下:public Pr原创 2021-10-14 15:08:41 · 2236 阅读 · 4 评论