Spring Boot 是 Spring 框架的一个子项目,旨在简化 Spring 应用的开发和部署。它提供了一系列的特性,使得开发者能够快速创建基于 Spring 的生产级应用程序。
主要特性
- 简化配置:Spring Boot 自动配置(Auto-Configuration)功能能够根据项目中的类路径设置自动配置 Spring 应用程序。
- 内嵌服务器:支持内嵌的 Tomcat、Jetty 或 Undertow,无需单独部署服务器。
- 独立运行:Spring Boot 应用可以打包成可执行 JAR 文件,直接通过命令行运行。
- 生产环境准备:提供了一系列的非功能性特性,如指标、健康检查、外部化配置等,帮助应用程序在生产环境中更好地运行。
快速开始
创建一个 Spring Boot 项目
可以通过 Spring Initializr 快速创建一个 Spring Boot 项目:
- 访问 Spring Initializr。
- 选择项目的基本信息,如 Group、Artifact、依赖等。
- 点击“Generate”按钮下载项目压缩包。
- 解压缩并导入到你喜欢的 IDE 中。
项目结构
一个典型的 Spring Boot 项目结构如下:
my-spring-boot-app
│
├── src/main/java
│ └── com/example/demo
│ ├── DemoApplication.java
│ └── ...
│
├── src/main/resources
│ ├── application.properties
│ └── ...
│
├── src/test/java
│ └── com/example/demo
│ └── DemoApplicationTests.java
│
├── pom.xml
└── ...
编写第一个控制器
在 src/main/java/com/example/demo
目录下创建一个控制器类:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
运行应用程序
在 DemoApplication.java
中包含 main
方法,用于启动应用:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
在 IDE 中运行 DemoApplication
,然后在浏览器中访问 http://localhost:8080/hello
,应该会看到“Hello, Spring Boot!”的响应。
常用配置
配置文件
Spring Boot 使用 application.properties
或 application.yml
文件来外部化配置。常见的配置项如下:
# 服务器端口
server.port=8080
# 日志级别
logging.level.root=INFO
logging.level.com.example=DEBUG
# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
日志配置
Spring Boot 默认使用 Logback 作为日志框架,可以在 src/main/resources
目录下创建 logback-spring.xml
文件进行自定义配置:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
结论
Spring Boot 大大简化了 Spring 应用的开发和部署过程,使得开发者能够专注于业务逻辑而不是配置和基础设施。通过自动配置、内嵌服务器和生产就绪特性,Spring Boot 是现代 Java 开发的强大工具。