在 Spring 框架称霸 Java 生态的年代,开发者常常被繁琐的配置文件 “劝退”——XML 配置堆砌、依赖版本冲突、环境搭建复杂,这些问题让项目启动成本居高不下。而 Spring Boot 的诞生,正是为了解决 “配置地狱”,它基于 “约定优于配置” 的核心思想,让开发者无需手动整合框架、编写冗余配置,专注于业务逻辑本身。
其核心优势可总结为三点:
- 自动配置(Auto-Configuration):Spring Boot 能根据 classpath 中的依赖自动推断配置,例如引入spring-boot-starter-web后,自动配置 Tomcat 服务器、DispatcherServlet 等 Web 组件,无需手动编写web.xml。
- Starter 依赖简化:通过 “starter” 封装常用框架组合(如spring-boot-starter-data-jpa整合 JPA 与 Hibernate),统一版本管理,避免依赖冲突。
- 嵌入式服务器:内置 Tomcat、Jetty 等服务器,无需额外部署,直接通过java -jar命令启动应用,简化部署流程。
- 生产级特性:自带健康检查、指标监控、日志管理等功能,支持外部化配置(通过 application.yml/properties 灵活切换环境)。
二、快速上手:3 分钟搭建一个 Spring Boot 应用
1. 环境准备
- JDK 8+(Spring Boot 3.x 需 JDK 17+)
- Maven/Gradle(推荐 Maven)
- 开发工具:IntelliJ IDEA(推荐安装 Spring Boot 插件)
2. 两种创建方式
方式一:Spring Initializr(官网快速生成)
- 访问Spring Initializr
- 配置参数:
- Project:Maven/Gradle
- Language:Java
- Spring Boot:选择稳定版本(如 2.7.x,兼容 JDK 8)
- Group/Artifact:自定义项目坐标(如 com.example/demo)
- Dependencies:勾选「Spring Web」(Web 开发核心依赖)
- 点击「Generate」下载项目压缩包,解压后用 IDEA 打开。
方式二:IDEA 直接创建
- 新建项目 → 选择「Spring Initializr」→ 配置同上
- 勾选依赖后直接创建,无需手动下载。
3. 编写第一个接口
打开主程序类(如DemoApplication.java),添加一个简单的 REST 接口:
java取消自动换行复制
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication // 核心注解:包含@ComponentScan、@EnableAutoConfiguration等
@RestController // 标记为控制器,返回JSON数据
public class DemoApplication {
public static void main(String[] args) {
// 启动Spring Boot应用
SpringApplication.run(DemoApplication.class, args);
}
// 定义GET请求接口:http://localhost:8080/hello
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
4. 启动与测试
- 直接运行main方法,控制台输出 “Started DemoApplication in xxx seconds” 表示启动成功。
- 浏览器访问http://localhost:8080/hello,即可看到返回结果:Hello, Spring Boot!。
三、核心配置:application.yml 详解
Spring Boot 默认支持application.properties和application.yml两种配置文件,推荐使用yml(语法更简洁,层级清晰)。在src/main/resources下创建application.yml,常用配置示例:
yaml取消自动换行复制
# 服务器配置
server:
port: 8081 # 修改端口(默认8080)
servlet:
context-path: /demo # 配置访问前缀(访问地址变为http://localhost:8081/demo/hello)
# Spring数据源配置(后续整合MyBatis时使用)
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
# 自定义配置(可通过@Value注解注入)
myconfig:
name: Spring Boot
version: 2.7.10
配置注入示例:在控制器中读取自定义配置:
java取消自动换行复制
@Value("${myconfig.name}")
private String configName;
@Value("${myconfig.version}")
private String configVersion;
@GetMapping("/config")
public String getConfig() {
return "配置名称:" + configName + ",版本:" + configVersion;
}
四、进阶实战:整合 MyBatis 操作数据库
1. 添加依赖
在pom.xml中添加 MyBatis Starter 和 MySQL 驱动:
xml取消自动换行复制
Spring Boot -->
>
.mybatis.spring.boot>
mybatis-spring-boot-starter .1</dependency>
驱动 -->
.mysql connector-j <scope>runtime</scope>
2. 编写实体类、Mapper 接口和 XML 映射文件
实体类(User.java)
java取消自动换行复制
public class User {
private Long id;
private String username;
private String password;
// getter/setter省略
}
Mapper 接口(UserMapper.java)
java取消自动换行复制
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper // 标记为MyBatis映射接口
public interface UserMapper {
// 查询所有用户
List();
}
XML 映射文件(UserMapper.xml)
在src/main/resources/mybatis/mapper下创建:
xml取消自动换行复制
="1.0" encoding="UTF-8"?>
mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
namespace="com.example.demo.mapper.UserMapper">
All" resultType="com.example.demo.entity.User">
SELECT id, username, password FROM user
</select>
apper>
3. 配置 MyBatis
在application.yml中添加:
yaml取消自动换行复制
mybatis:
mapper-locations: classpath:mybatis/mapper/*.xml # 映射文件路径
type-aliases-package: com.example.demo.entity # 实体类别名包(可简化resultType)
4. 编写 Service 和 Controller
java取消自动换行复制
5. 测试接口
启动应用后,访问http://localhost:8081/demo/user/list,即可返回数据库中user表的所有数据(需提前创建表并插入测试数据)。
五、Spring Boot 部署技巧
- 打包为 Jar 包:执行mvn clean package,在target目录下生成demo-0.0.1-SNAPSHOT.jar,通过java -jar demo-0.0.1-SNAPSHOT.jar启动。
- 指定配置文件启动:java -jar demo.jar --spring.profiles.active=prod(切换到生产环境配置application-prod.yml)。
- Linux 后台运行:nohup java -jar demo.jar > log.txt 2>&1 &(日志输出到 log.txt)。
六、总结
Spring Boot 的核心价值在于 “简化”—— 简化配置、简化依赖、简化部署,让开发者以最低成本搭建稳定、高效的 Java 应用。本文从基础入门到数据库整合,覆盖了 Spring Boot 的核心用法,后续还可深入学习缓存(Redis)、消息队列(RabbitMQ)、安全框架(Spring Security)等整合场景。
如果是新手,建议先熟练掌握自动配置原理和 Starter 机制;如果是有经验的开发者,可重点研究 Spring Boot 的自定义配置、starter 开发等高级特性,让框架更好地适配业务需求。