▌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相关的知识点

文章插图
▌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原型项目 。
关注作者:JAVA高级程序员
推荐阅读
- 沈抖详解百度小程序背后逻辑:做了小程序以后,即使大家再来骂我,我认了
- 要想网站排名靠前,robots.txt文件必须写好!详解robots文件
- 这不是心理作用:详解汽车加完油动力变好的原因
- 抖音怎么置顶视频和评论?抖音置顶视频操作步骤详解
- 一文带你详解了解Tomcat的Server配置
- 以MySQL为例,详解数据库索引原理及深度优化
- 详解 Linux 中的虚拟文件系统
- 常见交通标志详解
- 详解sqlplus设定行大小、页大小、字符列格式、数字列格式、清屏
- 2019年Facebook广告创建教程详解
