[TEST] Spring Boot 快速入门指南 - 1769246843980

Spring Boot 快速入门指南

前言

如果你已经熟悉传统的 Spring 框架,那么你一定体会过配置 XML 文件的繁琐:applicationContext.xml、web.xml、各种 bean 配置......Spring Boot 的出现彻底改变了这一切。它通过"约定优于配置"的理念,让开发者能够快速搭建生产级别的 Spring 应用。

Spring Boot 核心特性

Spring Boot 相比传统 Spring 的核心改进:

  1. 自动配置(Auto-Configuration):根据类路径中的依赖自动配置 Spring 应用
  2. 起步依赖(Starter Dependencies):一站式依赖管理,无需关心版本兼容
  3. 内嵌服务器:无需部署 WAR 包到外部 Tomcat,直接运行 JAR 即可
  4. 生产就绪特性:内置健康检查、监控指标等企业级功能

传统 Spring 应用
大量 XML 配置
手动管理依赖版本
部署到外部容器
Spring Boot 应用
零配置/注解驱动
Starter 自动管理
内嵌容器/独立运行

快速创建项目

方式一:使用 Spring Initializr(推荐)

访问 https://start.spring.io/,选择以下配置:

  • Project: Maven
  • Language: Java
  • Spring Boot: 3.2.x(最新稳定版)
  • Dependencies: Spring Web

点击 Generate 下载项目压缩包,解压后导入 IDE 即可。

方式二:Maven 手动创建

pom.xml 中添加 Spring Boot 父依赖:

xml 复制代码
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.1</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

核心注解详解

@SpringBootApplication

这是 Spring Boot 的核心注解,它是三个注解的组合:

java 复制代码
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

等价于传统 Spring 的配置

  • @Configuration:标记为配置类
  • @EnableAutoConfiguration:启用自动配置
  • @ComponentScan:自动扫描当前包及子包

@RestController

组合了 @Controller@ResponseBody,直接返回 JSON 数据:

java 复制代码
@RestController
@RequestMapping("/api")
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, Spring Boot!";
    }
}

对比传统 Spring :无需在每个方法上添加 @ResponseBody,也无需配置 JSON 转换器。

@Value 与 @ConfigurationProperties

@Value:注入单个配置项

java 复制代码
@Value("${app.name}")
private String appName;

@ConfigurationProperties:批量注入配置(推荐)

java 复制代码
@ConfigurationProperties(prefix = "app")
@Component
public class AppConfig {
    private String name;
    private String version;
    // getter/setter
}

运行示例

完整示例代码

创建一个简单的 RESTful API:

java 复制代码
@RestController
@RequestMapping("/users")
public class UserController {

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return new User(id, "张三", "zhangsan@example.com");
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        // 实际项目中应保存到数据库
        return user;
    }
}

@Data
@AllArgsConstructor
class User {
    private Long id;
    private String name;
    private String email;
}

启动流程

内嵌 Tomcat ApplicationContext SpringApplication main() 内嵌 Tomcat ApplicationContext SpringApplication main() 监听 8080 端口 run(Application.class) 加载配置文件 创建 Spring 容器 自动配置生效 扫描并注册 Bean 启动内嵌服务器 应用启动完成

运行与测试

  1. 启动应用
bash 复制代码
mvn spring-boot:run
  1. 测试接口
bash 复制代码
# 查询用户
curl http://localhost:8080/users/1

# 创建用户
curl -X POST http://localhost:8080/users \
  -H "Content-Type: application/json" \
  -d '{"name":"李四","email":"lisi@example.com"}'

配置文件

Spring Boot 支持 application.propertiesapplication.yml(推荐):

yaml 复制代码
server:
  port: 8080

spring:
  application:
    name: spring-boot-demo

app:
  name: 我的应用
  version: 1.0.0

总结

Spring Boot 通过以下方式极大简化了 Spring 应用开发:

传统 Spring Spring Boot
繁琐的 XML 配置 注解驱动,零配置
手动管理依赖版本 Starter 自动管理
部署到外部容器 内嵌容器,独立运行
需要手动配置 MVC 自动配置 Web 环境

对于已经熟悉 Spring 的开发者,Spring Boot 的学习成本极低,但能带来巨大的效率提升。建议从一个简单的 Web 项目开始,逐步体验自动配置的便利性。

下一步学习方向

  • Spring Boot 整合 MyBatis/JPA
  • Spring Boot Actuator 监控
  • Spring Boot 微服务实践

作者 : xiexu
标签: Java, Spring Boot, 入门教程

相关推荐
草履虫建模12 小时前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础
qq_2975746715 小时前
【实战教程】SpringBoot 实现多文件批量下载并打包为 ZIP 压缩包
java·spring boot·后端
老毛肚15 小时前
MyBatis插件原理及Spring集成
java·spring·mybatis
学嵌入式的小杨同学15 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
lang2015092815 小时前
JSR-340 :高性能Web开发新标准
java·前端·servlet
Re.不晚15 小时前
Java入门17——异常
java·开发语言
缘空如是15 小时前
基础工具包之JSON 工厂类
java·json·json切换
追逐梦想的张小年16 小时前
JUC编程04
java·idea
好家伙VCC16 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm
java·前端·python·webrtc
南极星100516 小时前
蓝桥杯JAVA--启蒙之路(十)class版本 模块
java·开发语言