Spring Boot 简介
Spring Boot 是基于 Spring 框架的快速开发脚手架,简化了 Spring 应用的初始搭建和配置过程。它通过自动配置、内嵌服务器(如 Tomcat)和约定优于配置的原则,让开发者快速构建独立运行的、生产级别的应用。
核心作用:
- 简化配置:无需手动配置 XML 或繁琐的依赖管理。
- 快速启动:内嵌服务器,直接运行
main
方法即可启动项目。 - 生态整合:默认集成 Spring 生态(如 Spring MVC、Spring Data)和第三方库(如 Redis、MyBatis)。
企业应用场景:
- 微服务架构中的独立服务模块。
- 快速构建 RESTful API 或前后端分离的后端应用。
- 替代传统 SSM(Spring + Spring MVC + MyBatis)的繁琐配置。
面试常见问题:
- Spring Boot 自动配置原理(如
@SpringBootApplication
注解的作用)。 - 如何自定义 Starter 组件。
- Spring Boot 与 Spring Cloud 的关系。
Spring Boot Web 案例
以下是一个简单的 Spring Boot Web 应用示例,包含详细注释和代码逻辑。
1. 项目结构
src/main/java
└── com.example.demo
├── DemoApplication.java // 启动类
└── controller
└── HelloController.java // 控制器
2. 代码实现
启动类 DemoApplication.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// 核心注解:组合了@Configuration、@EnableAutoConfiguration和@ComponentScan
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
// 启动Spring Boot应用
SpringApplication.run(DemoApplication.class, args);
}
}
控制器 HelloController.java
package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
// @RestController = @Controller + @ResponseBody
@RestController
public class HelloController {
// 处理GET请求,路径为/hello
@GetMapping("/hello")
public String sayHello(@RequestParam(value = "name", defaultValue = "World") String name) {
// 逻辑:拼接字符串并返回
return String.format("Hello, %s!", name);
}
}
3. 配置文件 application.properties
# 设置服务器端口
server.port=8080
# 设置应用上下文路径
server.servlet.context-path=/demo
4. 运行与测试
- 启动
DemoApplication
的main
方法。 - 访问
http://localhost:8080/demo/hello?name=SpringBoot
,返回结果:
Hello, SpringBoot!
- 不传参数时(
http://localhost:8080/demo/hello
),返回默认值:
Hello, World!
5. 关键逻辑解析
- 自动配置:Spring Boot 根据依赖(如
spring-boot-starter-web
)自动配置 Tomcat 和 Spring MVC。 - 注解驱动:
@GetMapping
定义路由,@RequestParam
处理请求参数。 - 内嵌服务器:无需部署 WAR 包,直接运行 Jar 文件即可启动服务。
扩展:企业级用法
- 连接数据库:通过
spring-boot-starter-data-jpa
或mybatis-spring-boot-starter
集成 ORM 框架。 - 异常处理:使用
@ControllerAdvice
全局捕获异常。 - 日志监控:集成 Actuator 暴露健康检查接口。
如需进一步扩展(如数据库操作、AOP 等),可基于此案例逐步添加模块。