SpringBoot 技术笔记
一、什么是 Spring Boot?
简单来说,Spring Boot 是基于 Spring 框架的一个全新项目,其设计目的是为了简化 Spring 应用的初始搭建和开发过程。
你可以把它理解为 Spring 的“增强版” 或者 “快速启动器”。它并不是要取代 Spring,而是建立在 Spring 之上,通过一些默认配置和约定,让开发者能够用最少的配置,最快地创建一个独立、生产级的 Spring 应用程序。
一个生动的比喻:
- Spring 框架 就像一个拥有强大零部件的汽车工厂,但你需要自己选择引擎、轮胎、座椅并组装起来。
- Spring Boot 则像一台已经组装好的、加满油的概念车。你坐进去,拧动钥匙,就能直接开走。如果你对某个部件不满意(比如想换个大轮胎),依然可以轻松地进行自定义改装。
二、Spring Boot 的核心优势
为什么 Spring Boot 能迅速成为 Java 后端开发的事实标准?因为它解决了我们的核心痛点:
自动配置 这是 Spring Boot 最魔法的地方!它会根据你引入的依赖(例如,你在
pom.xml里加入了spring-boot-starter-web),自动为你配置好 Spring 应用所需的大部分组件(如 Tomcat、Spring MVC 等)。你无需再写一大堆 XML 或 Java Config。起步依赖 Spring Boot 提供了一系列名为
spring-boot-starter-*的依赖项。这些“起步依赖”将某个功能所需的所有常见依赖整合在一起。例如,你想开发 Web 应用,只需引入spring-boot-starter-web,它会自动引入 Spring MVC、Tomcat、Jackson 等所有相关库,并且保证了版本兼容性。内嵌服务器 Spring Boot 应用程序默认内嵌了 Tomcat、Jetty 或 Undertow 服务器。这意味着你不再需要将应用打包成 WAR 文件并部署到外部 Web 服务器。你的应用本身就是一个可执行的 JAR 文件,包含了运行它所需的一切。
生产就绪特性 Spring Boot 提供了一系列用于监控和管理生产环境应用的工具,主要通过 Actuator 模块实现。它可以轻松地让你检查应用的健康状态、指标、HTTP 请求追踪等信息,极大地便利了运维。
三、快速开始:创建一个 Spring Boot 应用
理论说再多,不如动手试一试。创建一个 Spring Boot “Hello World” 应用简单到令人发指:
方式一:使用 Spring Initializr(推荐) 这是官方提供的在线项目生成工具,也是最常用的方式。
- 访问 https://start.spring.io/。
- 选择
Maven和Java。 - 输入
Group(如com.example)和Artifact(如demo)。 - 在 Dependencies 中添加
Spring Web依赖。 - 点击 Generate 按钮,下载生成的项目压缩包。
方式二:使用 IDE(如 IntelliJ IDEA) 现代 IDE 都内置了对 Spring Initializr 的支持,可以直接在 IDE 内完成上述步骤。
编写代码:
解压项目后,你会看到一个主应用类:
// SpringBootApplication 注解标明这是一个 Spring Boot 应用
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
// 启动嵌入式的 Tomcat 并初始化 Spring 环境
SpringApplication.run(DemoApplication.class, args);
}
}然后,创建一个简单的 Controller:
// RestController 注解表明这是一个 RESTful 风格的控制器
@RestController
public class HelloController {
// 映射 /hello 路径的 HTTP 请求
@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
}运行: 直接运行 DemoApplication 类的 main 方法。控制台会看到 Tomcat 启动的日志,端口默认是 8080。
打开浏览器,访问 http://localhost:8080/hello,你将看到屏幕上显示的 “Hello, Spring Boot!”。
整个过程,我们没有配置任何 XML,没有手动部署 Tomcat,仅仅写了寥寥几行代码,一个完整的 Web 服务就构建成功了!