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

打印 上一主题 下一主题

主题 907|帖子 907|积分 2721

含义
“约定优于配置” 指的是在 Spring Boot 框架中,对于常见的开发场景和需求,框架预先设定了一系列公道的默认配置和开发约定。开发者在大多数情况下只需遵循这些约定,无需手动编写大量繁琐的配置代码,框架就能自动完成相应的配置工作。只有当默认配置无法满足特定需求时,开发者才须要通过显式的配置来覆盖默认设置。
一、项目结构约定

Spring Boot 对项目标目录结构有着明确且通用的规范。典型的 Maven 或 Gradle 项目结构如下:
  1. src
  2. ├── main
  3. │   ├── java
  4. │   │   └── com
  5. │   │       └── example
  6. │   │           └── myproject
  7. │   │               ├── Application.java (主应用启动类)
  8. │   │               ├── controller
  9. │   │               ├── service
  10. │   │               ├── repository
  11. │   │               └── ...
  12. │   ├── resources
  13. │   │   ├── application.properties 或 application.yml (全局配置文件)
  14. │   │   ├── static (存放静态资源,如 CSS、JavaScript、图片等)
  15. │   │   └── templates (存放模板文件,如 Thymeleaf 模板)
  16. └── test
  17.     ├── java
  18.     └── resources
复制代码
遵循这样的结构,Spring Boot 能自动扫描和辨认各类组件,比方,将 @Controller 注解标注的类辨认为控制器,@Service 注解标注的类辨认为服务层组件等。
二、自动配置机制

这是 “约定优于配置” 原则的关键体现。Spring Boot 根据项目中引入的依赖自动举行配置。


  • Web 开发场景:引入 spring-boot-starter-web 依赖后,Spring Boot 会自动配置嵌入式 Servlet 容器(如 Tomcat、Jetty 或 Undertow),并创建 Spring MVC 所需的上下文环境,包括 DispatcherServlet 等核心组件,开发者无需手动举行 Servlet 容器和 MVC 相关的配置。
  • 数据库访问场景:引入 spring-boot-starter-data-jpa 依赖,Spring Boot 会自动配置数据源、JPA 实体管理器、事件管理器等,让开发者可以直接使用 JPA 举行数据库操纵,无需编写大量的数据库连接和配置代码。
三、默认配置值

Spring Boot 为众多配置项提供了公道的默认值。


  • 服务器端口:嵌入式 Servlet 容器默认监听的端口是 8080,开发者若没有特殊需求,无需举行端口配置;若要修改端口,可在 application.properties 或 application.yml 中添加 server.port = 8081 这样的配置。
  • 日志配置:Spring Boot 默认使用 Logback 作为日志框架,默认的日志级别是 INFO,开发者可根据须要在配置文件中调整日志级别和输出格式。
四、定名约定

在 Spring Boot 中,定名也遵循一定的约定。


  • JPA 实体与数据库表映射:实体类的属性名和数据库表的列名通常默认保持一致,除非使用 @Column 注解举行显式指定。比方,实体类 User 中的 username 属性,默认会映射到数据库表中的 username 列。
  • Bean 定名:Spring Boot 会根据类名自动天生 Bean 的名称,一般是将类名的首字母小写作为 Bean 名称。比方,UserService 类的 Bean 名称默认为 userService。
五、优势

1、提升开发服从
开发者无需在项目搭建和底子配置上花费大量时间,可以或许将更多精力投入到业务逻辑的实现中,明显加快项目标开发进度。
2.、低落学习本钱
对于初学者而言,遵循 Spring Boot 的约定可以快速上手开发,减少因复杂配置带来的学习负担和堕落概率。
3、增强代码一致性
项目遵循统一的约定,代码结构和配置方式具有较高的一致性,便于团队协作开发和代码的后续维护。
六、范围性

1、灵活性受限
当项目有特殊需求,须要偏离默认约定时,可能须要花费额外的精力举行配置,甚至须要对 Spring Boot 的自动配置机制有深入了解才气实现。
2、调试难度增加
由于自动配置的存在,某些题目可能难以定位,开发者可能不清楚框架在背后做了哪些配置,排查题目时须要对框架的运行机制有一定的掌握。
综上所述,“约定优于配置” 原则让 Spring Boot 成为一个高效、易用的开发框架,但开发者也须要在遵循约定和满足特殊需求之间找到平衡。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表