[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, 入门教程

相关推荐
roman_日积跬步-终至千里26 分钟前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络
毕设源码-钟学长28 分钟前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
CodeSheep程序羊43 分钟前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
程序员良许1 小时前
三极管推挽输出电路分析
后端·嵌入式
Java水解1 小时前
【JAVA 进阶】Spring AOP核心原理:JDK与CGLib动态代理实战解析
后端·spring
我是咸鱼不闲呀1 小时前
力扣Hot100系列19(Java)——[动态规划]总结(上)(爬楼梯,杨辉三角,打家劫舍,完全平方数,零钱兑换)
java·leetcode·动态规划
Java水解1 小时前
Spring Boot 4 升级指南:告别RestTemplate,拥抱现代HTTP客户端
spring boot·后端
宫水三叶的刷题日记1 小时前
工商银行今年的年终奖。。
后端
大黄评测1 小时前
双库协同,各取所长:.NET Core 中 PostgreSQL 与 SQLite 的优雅融合实战
后端
神云瑟瑟1 小时前
spring boot拦截器获取requestBody的最佳实践
spring boot·拦截器·requestbody