前言
Spring Boot 2014正式发布1.0版本,距今已经快10年了。看历史官方文档了解重点feature, 帮助自己建立知识网络。
与 Spring 5 官网历史文档学习 一样,尽量保证不误解文档作者的原意,不好翻译的会有原文摘录(包括一些专有名词),并辅以自己的理解。限于篇幅原因,只摘录工作中遇到过的或者是有兴趣的。
1 Spring Boot 1.0
- Spring Boot 1.0 官方文档
1.1 Spring Boot 1.0 特性 —— 专属的Spring事件
- 专属的Spring事件 原文地址
1.1.1 背景
Spring Boot 基础知识,排错或需要拓展Spring Boot的时候要考虑到这个
1.1.2 原文解读
在 ApplicationContext 创建完成之前,会依次发生以下事件:
- ApplicationStartedEvent —— 在 listeners 和 initializers 注册完成。
- ApplicationEnvironmentPreparedEvent —— 还未创建 context,但是其依赖的 Environment 已知。
- ApplicationPreparedEvent —— 在 refresh 之前,bean 定义全部加载完成。
- ApplicationFailedEvent —— 启动失败。
实际开发中可能不会用到这些事件,但是Spring Boot借助这些事件完成了许多功能。
You often won’t need to use application events, but it can be handy to know that they exist. Internally, Spring Boot uses events to handle a variety of tasks.
1.2 Spring Boot 1.0 特性 —— 外部化配置
- 外部化配置 原文地址
1.2.1 背景
实现一套代码在不同的环境部署。实现外部化配置的方法:
- properties
- YAML
- 环境变量
- 命令行参数
1.2.2 原文解读
外部化配置的元素还能注入到bean,通过
@Value
-
Environment
抽象
PropertySource
读取配置的顺序,数字大的覆盖数字小的:
- 命令行参数
- Java api
System.getProperties()
- 操作系统环境变量
-
@Configuration
标注的类,又由@PropertySource
注入 - 外部包下的 application.properties
- 内部包下的 application.properties
- 默认配置
SpringApplication.setDefaultProperties
实际应用:自己的jar包提供默认实现(自己是个starter),生产项目依赖这个starter,运行生产项目覆盖这个配置
值得注意的是配置文件的读取优先级
- 当前目录/config
- 当前目录
- classpath 中的 /config
- classpath 的根目录
Spring Boot 1.0 yml 文件的缺点文章来源:https://www.toymoban.com/news/detail-695740.html
-
@PropertySource
没法读到 YAML 的配置
@ConfigurationProperties(name="connection")
的使用文章来源地址https://www.toymoban.com/news/detail-695740.html
- 用于简化公共前缀的冗余,与 yml 文件的思路一致
connection: username: admin remoteAddress: 192.168.1.1
@Component @ConfigurationProperties(name="connection") public class ConnectionSettings { private String username; @NotNull private InetAddress remoteAddress; // ... getters and setters }
- 支持 JSR-303 @NotNull 校验
1.3
到了这里,关于【笔记】Spring Boot 历史官方文档学习(持续更新)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!