含义
“约定优于配置” 指的是在 Spring Boot 框架中,对于常见的开发场景和需求,框架预先设定了一系列公道的默认配置和开发约定。开发者在大多数情况下只需遵循这些约定,无需手动编写大量繁琐的配置代码,框架就能自动完成相应的配置工作。只有当默认配置无法满足特定需求时,开发者才须要通过显式的配置来覆盖默认设置。
一、项目结构约定
Spring Boot 对项目标目录结构有着明确且通用的规范。典型的 Maven 或 Gradle 项目结构如下:
- src
- ├── main
- │ ├── java
- │ │ └── com
- │ │ └── example
- │ │ └── myproject
- │ │ ├── Application.java (主应用启动类)
- │ │ ├── controller
- │ │ ├── service
- │ │ ├── repository
- │ │ └── ...
- │ ├── resources
- │ │ ├── application.properties 或 application.yml (全局配置文件)
- │ │ ├── static (存放静态资源,如 CSS、JavaScript、图片等)
- │ │ └── templates (存放模板文件,如 Thymeleaf 模板)
- └── test
- ├── java
- └── 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企服之家,中国第一个企服评测及商务社交产业平台。 |