当前位置: 首页 > article >正文

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

约定优于配置"(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 {
        @Bean
        public MyBean myBean() {
            return new MyBean();
        }
    }

5. 总结

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


http://www.kler.cn/a/546501.html

相关文章:

  • 【学习资源】时间序列数据分析方法(1)
  • 【NLP】循环神经网络RNN
  • Wireshark TS | 再谈虚假的 TCP Spurious Retransmission
  • Windows逆向工程入门之汇编指令四则运算(ADD/SUB/DIV/MUL)
  • UniApp 实现炫酷导航栏:选中图标上移并隐藏文字
  • 电脑端调用摄像头拍照:从基础到实现
  • 域森林基础及环境搭建
  • Kubernetes 面试题精解:从入门到进阶
  • JAVA实战开源项目:宠物咖啡馆平台(Vue+SpringBoot) 附源码
  • 【代码随想录】刷题记录(114)-岛屿数量(深搜)
  • 无耳科技 Solon v3.0.8 发布,Java 企业级应用开发框架
  • 【LLM强化学习】LLM 强化学习中 Critic 模型训练详解
  • 蓝桥杯篇---实时时钟 DS1302
  • 若依 ruoyi-vue 隐藏字典样式
  • 什么是多光谱环形光源
  • 哈希表-四数之和
  • 详解 Java 基础的多态机制
  • EventSource的使用
  • 后端调试指南
  • 消息队列之-springcloud-mq-stream 学习
  • Windows 找不到文件gpedit.msc,没有组策略编辑器,解决办法附上
  • k8s集群搭建参考(by lqw)
  • 能源物联网电力计量装置功能参数介绍
  • [ComfyUI]SDXL产品材质迁移工作流分享
  • 深入理解队列数据结构:从定义到Python实现与应用场景
  • web自动化-浏览器驱动下载