Spring Boot 是由 Pivotal 团队提供的全新框架,它是 Spring 框架的扩展。其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。Spring Boot 采用了约定优于配置的理念,它能帮助开发者快速构建独立的、生产级别的 Spring 应用程序,减少了大量的样板代码和配置文件,使开发者可以更加专注于业务逻辑的实现。
Spring Boot 大大缩短了项目的开发周期,开发者可以使用 Spring Initializr 快速创建项目,选择所需的依赖,如 Web、JPA 等。同时,Spring Boot 提供了丰富的开发工具和插件,如 Spring DevTools,它可以在代码修改后自动重启应用,提高开发效率。
Spring Boot 的自动配置是其核心特性之一。它通过条件注解(如 @ConditionalOnClass
、@ConditionalOnMissingBean
等)根据类路径下的依赖和开发者的配置来自动配置 Spring 应用。例如,如果类路径下存在 Tomcat 依赖,Spring Boot 会自动配置嵌入式 Tomcat 服务器;如果存在 JPA 依赖,会自动配置数据源和 JPA 相关的 Bean。
可以使用 Spring Initializr(https://start.spring.io/)来创建一个简单的 Spring Boot Web 项目,选择以下依赖:
下载项目压缩包并解压到本地,使用 IDE 打开项目。
在 src/main/java
目录下创建一个控制器类 HelloController
,代码如下:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
@RestController
是一个组合注解,相当于 @Controller
和 @ResponseBody
的组合,用于将控制器的方法返回值直接作为 HTTP 响应体返回。@GetMapping("/hello")
表示处理 HTTP GET 请求,请求路径为 /hello
。在 src/main/java
目录下找到带有 @SpringBootApplication
注解的主类,通常命名为 {项目名}Application
,运行其 main
方法启动应用。代码示例:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@SpringBootApplication
是一个组合注解,包含了 @SpringBootConfiguration
、@EnableAutoConfiguration
和 @ComponentScan
三个注解,用于开启 Spring Boot 的自动配置和组件扫描功能。打开浏览器或者使用工具(如 Postman)访问 http://localhost:8080/hello
,如果看到页面显示 Hello, Spring Boot!
,则说明应用启动成功。
特点 | 描述 | 示例 |
---|---|---|
快速开发 | 借助 Spring Initializr 快速创建项目,使用开发工具提高效率 | 使用 Spring DevTools 实现代码修改后自动重启应用 |
自动配置 | 根据类路径下的依赖和配置自动配置 Spring 应用 | 类路径存在 Tomcat 依赖时自动配置嵌入式 Tomcat 服务器 |
Spring Boot 的快速开发和自动配置特点使得 Java Web 开发变得更加高效和简单,开发者可以将更多的精力放在业务逻辑的实现上,而不是繁琐的配置工作。无论是初学者还是有经验的开发者,都能从 Spring Boot 中受益,快速构建出高质量的 Spring 应用程序。