Spring Boot 是基于 Spring 框架的快速开发工具集,旨在简化 Spring 应用的配置和开发。以下是一些关键的 Spring Boot 知识点:
1. Spring Boot 简介
-
自动配置:
- Spring Boot 自动配置(Auto-Configuration)机制可以根据类路径中的依赖、Bean 定义等,自动配置应用所需的 Spring 组件,极大地减少了手动配置的工作量。
-
嵌入式服务器:
- Spring Boot 提供了嵌入式的 Web 服务器(如 Tomcat、Jetty、Undertow),无需部署 WAR 文件,直接运行 JAR 文件即可启动应用。
-
独立运行:
- 使用
SpringApplication.run()
方法启动应用,无需依赖外部容器。
- 使用
2. 核心注解
-
@SpringBootApplication
:- 是一个复合注解,组合了
@Configuration
、@EnableAutoConfiguration
、@ComponentScan
。 - 这个注解通常放在主应用类上,用于标识 Spring Boot 应用的入口。
- 是一个复合注解,组合了
-
@EnableAutoConfiguration
:- 告诉 Spring Boot 自动配置你的应用程序,基于类路径中的依赖来决定配置内容。
-
@ComponentScan
:- 自动扫描指定包及其子包中的所有
@Component
、@Service
、@Repository
、@Controller
等注解的类,并将其注册为 Spring Bean。
- 自动扫描指定包及其子包中的所有
3. Spring Boot 配置
-
application.properties
和application.yml
:- 这些文件用于配置 Spring Boot 应用的各种属性,如端口、数据库连接、日志级别等。
- 支持多环境配置(如
application-dev.yml
、application-prod.yml
),可以根据运行环境加载不同的配置文件。
-
外部化配置:
- Spring Boot 支持通过环境变量、命令行参数、系统属性等多种方式外部化配置,使得应用的配置更加灵活。
4. Spring Boot Starter
- Starter 是 Spring Boot 提供的一种依赖管理机制,预配置了一组常用依赖。
spring-boot-starter-web
:包含构建 Web 应用所需的常用依赖,如 Spring MVC、Tomcat 等。spring-boot-starter-data-jpa
:包含使用 JPA 进行数据访问所需的依赖,如 Hibernate、Spring Data JPA 等。spring-boot-starter-test
:包含常用的测试库,如 JUnit、Mockito 等。
5. Spring Boot 与数据库
-
数据源配置:
- 通过
application.properties
或application.yml
配置数据源连接信息,如spring.datasource.url
、spring.datasource.username
、spring.datasource.password
。
- 通过
-
Spring Data JPA:
- 与 Spring Data JPA 集成,简化了数据库访问层的开发。你可以使用
JpaRepository
或CrudRepository
接口来执行常见的数据库操作。
- 与 Spring Data JPA 集成,简化了数据库访问层的开发。你可以使用
-
Flyway 和 Liquibase:
- Spring Boot 支持 Flyway 和 Liquibase 数据库迁移工具,帮助管理数据库版本和自动执行数据库脚本。
6. Spring Boot Web 开发
-
内嵌 Web 服务器:
- Spring Boot 默认集成了 Tomcat 作为内嵌 Web 服务器,你也可以通过配置使用 Jetty 或 Undertow。
-
Spring MVC:
- 使用
@RestController
和@RequestMapping
注解处理 Web 请求。 - 提供 JSON 和 XML 格式的响应,支持
@ResponseBody
注解直接将对象序列化为 JSON。
- 使用
-
模板引擎:
- Spring Boot 支持多种模板引擎,如 Thymeleaf、Freemarker、Groovy 等,方便生成动态网页。