从 4 个点方面来回答:
- 首先, 约定优于配置是一种软件设计的范式,它的核心思想是减少软件开发人员对于配置项的维护,从而让开发人员更加聚焦在业务逻辑上。
- Spring Boot 就是约定优于配置这一理念下的产物,它类似于 Spring 框架下的一个脚手架,通过 Spring Boot,我们可以快速开发基于 Spring 生态下的应用程序。
- 基于传统的 Spring 框架开发 web 应用,我们需要做很多和业务开发无关并且只需要做一次的配置,比如:
- 管理 jar 包依赖
- web.xml 维护
- Dispatch-Servlet.xml 配置项维护
- 应用部署到 Web 容器
- 第三方组件集成到 Spring IOC 容器中的配置项维护
而在 Spring Boot 中,我们不需要再去做这些繁琐的配置,Spring Boot 已经自动帮我们完成了,这就是约定由于配置思想的体现。
- Spring Boot 约定由于配置的体现有很多,比如:
- Spring Boot Starter 启动依赖,它能帮我们管理所有 jar 包版本
- 如果当前应用依赖了 spring mvc 相关的 jar,那么 Spring Boot 会自动内置Tomcat 容器来运行 web 应用,我们不需要再去单独做应用部署。
- Spring Boot 的自动装配机制的实现中,通过扫描约定路径下的spring.factories 文件来识别配置类,实现 Bean 的自动装配。
- 默认加载的配置文件 application.properties 等等。
总的来说,约定优于配置是一个比较常见的软件设计思想,它的核心本质都是为了更高效以及更便捷的实现软件系统的开发和维护。