10分钟详解Spring全家桶“7大知识点”( 五 )


▌3.BeanPostProcessor
提供了在bean初始化之前和之后插入自定义逻辑的能力 。与BeanFactoryPostProcessor的区别是处理的对象不同 , BeanFactoryPostProcessor是对beanfactory进行处理 , BeanPostProcessor是对bean进行处理 。
注:上面这三个扩展点 , 可以通过实现Ordered和PriorityOrdered接口来指定执行顺序 。实现PriorityOrdered接口的processor会先于实现Ordered接口的执行 。
▌4.ApplicationContextAware
可以获得ApplicationContext及其中的bean , 当需要在代码中动态获取bean时 , 可以通过实现这个接口来实现 。
▌5.InitializingBean
可以在bean初始化完成 , 所有属性设置完成后执行特定逻辑 , 例如对自动装配对属性进行验证等等 。
▌6.DisposableBean
用于在bean被销毁前执行特定的逻辑 , 例如做一些回收工作等 。
▌7.ApplicationListener
用来监听spring的标准应用事件或者自定义事件 。
七、springboot相关的知识点

10分钟详解Spring全家桶“7大知识点”

文章插图
 
▌1.启动流程
主要步骤首先要配置environment , 然后准备context上下文 , 包括执行applicationContext的后置处理、初始化initializer、通知listener处理contextPrepared和contextLoaded事件 。最后执行refreshContext , 也就是前面介绍过的AbstractApplicationContext类的refresh方法 。
▌2.配置文件
然后要知道在Spring Boot中有两种上下文 , 一种是bootstrap, 另外一种是application 。
bootstrap是应用程序的父上下文 , 也就是说bootstrap会先于applicaton加载 。bootstrap主要用于从额外的资源来加载配置信息 , 还可以在本地外部配置文件中解密属性 。bootstrap里面的属性会优先加载 , 默认也不能被本地相同配置覆盖 。
▌3.注解
@SpringBootApplication包含了@ComponentScan、@EnableAutoConfiguration、@SpringBootConfiguration三个注解
而@SpringBootConfiguration注解包含了@Configuration注解 。也就是springboot的自动配置功能 。
@Conditional注解就是控制自动配置的生效条件的注解 , 例如bean或class存在、不存在时进行配置 , 当满足条件时进行配置等等 。
▌4.特色模块
  • starter是springboot提供的无缝集成功能的一种方式 , 使用某个功能时开发者不需要关注各种依赖库的处理 , 不需要具体的配置信息 , 由Spring Boot自动配置进行bean的创建 。例如需要使用web功能时 , 只需要在依赖中引入spring-boot-starter-web即可 。
  • actuator是用来对应用程序进行监视和管理 , 通过restful api请求来监管、审计、收集应用的运行情况 。
  • devtools提供了一系列开发工具的支持 , 来提高开发效率 。例如热部署能力等 。
  • CLI就是命令行接口 , 是一个命令行工具 , 支持使用Groovy脚本 , 可以快速搭建spring原型项目 。
以上为Spring框架需要掌握的内容 , 前面提到的核心机制、核心流程 , 建议阅读源码加深理解 。
关注作者:JAVA高级程序员




推荐阅读