Spring Boot 的约定优于配置,你的理解是什么?

ops/2025/2/18 16:06:29/

约定优于配置"(Convention over Configuration)是 Spring Boot 的核心设计理念之一。它的核心思想是通过提供一组合理的默认配置,减少开发者需要手动配置的工作量,从而提高开发效率和应用的一致性。以下是对这一理念的详细理解:

1. 什么是“约定优于配置”?

  • 约定:Spring Boot 为常见的开发场景提供了一组默认的约定和配置。这些约定是基于社区的最佳实践和经验总结出来的。

  • 配置:开发者可以根据需要对这些默认配置进行覆盖或扩展,但大多数情况下,开发者不需要进行额外的配置即可完成开发任务。

2. Spring Boot 中的“约定优于配置”体现在哪些方面?

2.1 自动配置(Auto-Configuration)

Spring Boot 的自动配置是“约定优于配置”的核心体现。Spring Boot 会根据项目的依赖和类路径中的库,自动配置应用程序。例如:

  • 如果项目中包含 spring-boot-starter-web 依赖,Spring Boot 会自动配置 Tomcat 和 Spring MVC。

  • 如果项目中包含 spring-boot-starter-data-jpa 依赖,Spring Boot 会自动配置数据库连接和 JPA。

2.2 默认配置

Spring Boot 提供了许多默认配置,开发者可以直接使用,而无需手动配置。例如:

  • 端口号:默认使用 8080 端口。

  • 日志配置:默认使用 logback 作为日志框架,并提供合理的日志级别和输出格式。

  • 数据库配置:默认使用 H2 数据库,如果需要其他数据库,只需添加相应的依赖并配置数据源。

2.3 目录结构约定

Spring Boot 对项目的目录结构也有一定的约定。例如:

  • src/main/java:存放 Java 源代码。

  • src/main/resources:存放资源文件,如 application.propertiesapplication.yml

  • src/test/java:存放测试代码。

2.4 依赖管理

Spring Boot 提供了 spring-boot-starter 系列依赖,这些依赖已经包含了常见的库和框架,并且管理了版本号。开发者只需引入相应的 starter 依赖,即可使用相关功能。例如:

  • spring-boot-starter-web:包含 Spring MVC 和 Tomcat。

  • spring-boot-starter-data-jpa:包含 Spring Data JPA 和 Hibernate。

  • spring-boot-starter-security:包含 Spring Security。

2.5 应用启动

Spring Boot 应用的启动非常简单,只需一个主类包含 @SpringBootApplication 注解,并调用 SpringApplication.run() 方法即可。例如:

@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

3. “约定优于配置”的优势

  1. 提高开发效率:开发者无需花费大量时间配置项目,可以专注于业务逻辑的实现。

  2. 减少出错概率:默认配置经过了充分测试和验证,减少了因配置错误导致的问题。

  3. 一致性:所有 Spring Boot 应用都遵循相同的约定,便于团队协作和代码维护。

  4. 灵活性:虽然有默认约定,但开发者仍然可以根据需要进行自定义配置。

4. 如何自定义配置?

虽然 Spring Boot 提供了许多默认配置,但开发者仍然可以根据需要进行自定义。例如:

  • 修改默认端口

    server.port=8081
  • 配置数据源

    spring.datasource.url=jdbc:mysql://localhost:3306/mydb
    spring.datasource.username=root
    spring.datasource.password=123456
  • 自定义 Bean

    @Configuration
    public class MyConfig {@Beanpublic MyBean myBean() {return new MyBean();}
    }

5. 总结

"约定优于配置" 是 Spring Boot 的核心设计理念,通过提供合理的默认配置,减少了开发者的配置工作量,提高了开发效率和应用的一致性。同时,Spring Boot 仍然保持了高度的灵活性,开发者可以根据需要进行自定义配置。这种设计理念使得 Spring Boot 成为现代 Java 开发中非常受欢迎的框架之一。


http://www.ppmy.cn/ops/158567.html

相关文章

StableDiffusion学习笔记——1、环境搭建

目录   大家好,我是阿赵。   阿赵我对各种技术都有浓厚的兴趣,对AI相关的技术也不例外。随着AI技术的不断发展,出现了很多不同的AI绘图和视频制作的工具,比如常见的Stable Diffusion和ComfyUI。   现在出现了很多现成可用的…

AI成为基础设施有哪些研究方向:模型的性能、可解释性,算法偏见

AI成为基础设施有哪些研究方向 模型的性能、可解释性和降低训练成本 伦理问题:算法偏见、数据隐私保护、人工智能的权利和责任 数据使用问题:公开数据已经使用完了,未来使用隐私数据(专家) 当AI成为基础设施后,研究方向将更加多元化和深入,涵盖技术创新、应用拓展、…

LabVIEW 用户界面设计基础原则

在设计LabVIEW VI的用户界面时,前面板的外观和布局至关重要。良好的设计不仅提升用户体验,还能提升界面的易用性和可操作性。以下是设计用户界面时的一些关键要点: 1. 前面板设计原则 交互性:组合相关的输入控件和显示控件&#x…

游戏引擎学习第103天

仓库:https://gitee.com/mrxiao_com/2d_game_2 回顾bug 接下来回顾一下这个bug的具体情况。当前是一个调试视图,我们并不是直接在调试视图下工作,而是在进行相关的调试。展示了地图,这里是环境贴图,上面是正在使用的环境贴图&am…

自己部署 DeepSeek 助力 Vue 开发:打造丝滑的时间线(Timeline )

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 自己…

第一章嵌入式系统概论考点03嵌入式系统的分类

第一章常考知识点有: 了解嵌入式系统的特点、分类、发展与应用,熟悉嵌入式系统的逻辑组成。 了解嵌入式处理芯片的主要类型,熟悉SoC的开发流程,理解IP核的重要意义。 熟悉中西文字的编码和数字文本的类型与处理,掌握数字图像的参数、文件格式及其主要应用。 理解计算机…

duckdb导出Excel和导出CSV速度测试

运行duckdb数据库 D:>duckdb v1.2.0 5f5512b827 Enter “.help” for usage hints. Connected to a transient in-memory database. Use “.open FILENAME” to reopen on a persistent database. 生成模拟数据,10个列,100万行数据; --…

网络编程(tcp线程池)

1.有一个水果盘,一次只能放一个水果,妈妈买苹果或者香蕉,让儿子和女儿吃水果。儿子只吃苹果,女儿只吃香蕉。请设计代码实现这个过程。 提示:创建3个信号量,分别用于控制妈妈,儿子,女…