Spring中构建BeanDefinition的两种方法

BeanDefinitionBuilder,GenericBeanDefinition,BeanDefinitionBuilder,GenericBeanDefinition

Spring中的BeanDefinition

: 返回当前 bean definition 定义的类名,: 设置父 definition 的名称,: 返回当前 bean definition 的父 definition 的名字,: 设置工厂的方法名

Spring Bean懒加载与非懒加载

即被非懒加载的bean依赖时也会被初始化,那么当ApplicationContext提前实例化singleton bean时,而另一个非延迟初始化的singleton bean依赖于它,3,ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化

@PostConstruct,@Autowired和Constructor的先后顺序

@PostConstruct注解的方法将会在依赖注入完成后被自动调用,可以使用@PostConstruct注解一个方法来完成初始化,而偏偏这些初始化操作又依赖于依赖注入,如果想在生成对象时候完成某些初始化操作

Spring 常用扩展点接口

从名字上来看, 这个接口是 的后处理器, 通过它我们可以在 初始化前后做一些操作. 它提供了两个方法:,这个接口有一个方法: , 该方法在所有的属性都被赋值后调用. 属性被赋值是在初始化的时候做的, 与 结合来看, 方法将在 和 之间被调用.,就是 的后处理类, 我们可以在 初始化之后做一些操作. 它提供了个 方法, 这个方法被调用的时候, 所有的 已经被创建, 但是还没有被初始化. 也就是说, 通过它我们可以在初始化任何 之前, 做各种操作, 甚至读取并修改 (bean定义的元数据).,另外, 在 中可以通过 注解来指定在被 之后紧接着做一些初始化操作, 上面的 方法是在 之后被调用的.

springboot自定义注解 (BeanPostProcessor的应用案例)

使用BeanPostProcessor处理注解,使用@interface定义注解,自定义注解类,源码:https://github.com/mifunc/spring-processor

Spring Bean的生命周期

调用时机需要注意:所有的Aware方法都是在初始化阶段之前调用的,可以看到并不是所有的Aware接口都使用同样的方式调用,因为Aware方法都是执行在初始化方法之前,这也说明了Aware都是在初始化阶段之前调用的

Spring 中的事件机制 ApplicationEventPublisher

用户注册业务和发布用户注册事件,ApplicationContext 通过 ApplicationEvent 类和 ApplicationListener 接口进行事件处理,当用户注册后,给他发送一封邮件通知他注册成功了

SpringBoot读取配置文件属性的N种方式/@Value读取数组,List

@Value注解读取普通属性,通过注入获取Environment对象,@Value注解读取数组,@Value注解读取数组

SpringBoot常用工具类

InitializingBean 实现该接口可以做一些初始化动作,可以在这个方法中做一些比如清理资源的动作,WebUtils 获取 web 资源工具类,FactoryBean 通过实现该接口可以将我们自定义的 Bean 注入到 Spring 的容器当中去

入门小站