死牛胖子
在技术的路上渐行渐远
展开
-
Spring源码分析 | BeanFactoryPostProcessor的用法与源码分析
接口只提供了一个回调方法,通过该方法可以调整容器的属性。 还有一个子接口 ,该接口也提供了一个回调方法,通过该方法可以向容器注册 。 方法的回调时间在 方法之前,也就是说优先注册 。BeanFactoryPostProcessor 在容器启动过程中的执行时机Spring 应用通过 方法启动容器,在 中会对所有的 执行回调, 的执行时间是在完成 加载之后,执行 实例化之前。所以在 中可以修改容器属性,可以注册 ,但最好不要手动做 Bean 实例化,不然可能导致不可预知的错误。如何注册 B原创 2022-06-20 21:30:40 · 309 阅读 · 0 评论 -
Spring源码分析 | FactoryBean的使用及实现原理
Spring是目前使用最广泛的J2EE框架,主要包括IOC及AOP两部分功能,IOC即依赖注入,原创 2022-06-21 16:34:19 · 186 阅读 · 0 评论 -
Spring源码学习 | ResourceLoader资源加载
Spring 将所有的资源统一成了 Resource,不同的资源对应 Resource 的一个实现类,众多的实现类共同组成 Resource 家族,需要加载什么资源,只需要实现 Resource 接口,就可以成为 Resource 家族的一员,统一使用 Resource 接口进行资源加载。但是,在使用时,需要使用者清楚知道不同的资源对应哪一个实现类,以及实现类该如何构建、如何使用,说到底就还是面向实现编程而不是面向接口编程。为了进一步简化资源加载过程,Spring 又封装了 ResourceLoader原创 2022-05-28 11:57:23 · 328 阅读 · 0 评论 -
Spring源码学习 | Environment环境
什么是多环境?任何一个应用级框架都会存在多环境问题,何谓多环境?正常来说,我们在项目开发过程中会经历开发环境、测试环境、灰度环境、生产环境等,以数据库配置为例,不同环境的数据库连接配置是不一样的,程序启动时需要根据当前环境获取相应的配置,这就是多环境,同一个资源,在不同的环境下拥有不同的版本,需要程序根据当前环境获取到相应的版本资源。@Profile 的用法@Profile 注解可以声明当前 Bean 的适用环境,为一个接口的两个实现分别声明不同的 Profile。public class Conf原创 2021-12-09 17:30:25 · 371 阅读 · 0 评论 -
Spring源码学习 | PropertySource配置源
所有的应用都存在配置,比较常见就是以配置文件的形式出现,比如:SpringBoot 应用中的 application.properties 或者 application.yaml。配置有一个明显的特点就是键值对,配置并不局限于配置文件,只要是键值对形式的都可以作为配置使用,比如:启动命令中可以通过 -D 携带配置,甚至内存中的 Map 也可以作为配置。每一个出现配置的地方,可以认为是一个配置源,一个应用中可以出现多个配置源。不同配置源中的配置可能存在重复的现象,所以多个配置源之间需要有一个优先级。索引原创 2021-12-05 17:10:12 · 436 阅读 · 0 评论 -
Spring源码学习 | Resource资源
目录什么是资源?Resource - 对资源的封装ClassPathResourceFileSystemResourceUrlResourceByteArrayResourceInputStreamResource总结什么是资源?所有的数据都是资源,一个文件、URL、流甚至一个字节数组都可以当作资源,资源需要加载到内存才可以使用,不同的资源加载的方式各不一样。比如:加载本地文件可以使用 JDK 提供的 File 或者 Path 进行加载,加载项目内文件使用 Class.getResourceAsStre原创 2021-11-02 21:02:02 · 188 阅读 · 0 评论