一、基本介绍
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
二、关键特性
-
自动配置 :Spring Boot根据项目中添加的依赖自动配置Spring应用程序。例如,如果项目中添加了
spring-boot-starter-web
依赖,Spring Boot会自动配置Tomcat和Spring MVC。 -
独立运行 :Spring Boot应用程序包含内嵌的HTTP服务器(如Tomcat、Jetty或Undertow),可以打包成一个独立的JAR文件,这样就可以通过简单的
java -jar
命令来运行。 -
无需XML配置:Spring Boot不需要使用XML配置文件,尽管它仍然支持XML配置,但推荐使用基于Java的配置。
-
微服务支持:Spring Boot非常适合微服务架构,可以与Spring Cloud等其他项目结合,以支持服务发现、配置管理等微服务特性。
-
社区和插件生态:Spring Boot拥有一个活跃的社区,提供了大量的插件和"Starters",这些Starters是预先定义好的依赖集合,可以快速添加到项目中。
-
监控和管理:Spring Boot提供了多种监控和管理功能,包括健康检查、度量信息收集等。
-
配置外部化 :Spring Boot支持从外部配置文件(如
application.properties
或application.yml
)中读取配置,使得配置与代码分离,便于不同环境下的配置管理。 -
安全性:Spring Boot与Spring Security集成,提供了一套安全自动配置,可以快速增加安全性支持。
-
测试支持:Spring Boot提供了对JUnit等测试框架的支持,使得编写和执行单元测试和集成测试变得更加容易。
三、基本结构
src/main/java
:存放主要的Java代码。src/main/resources
:存放配置文件和静态资源。application.properties
或application.yml
:Spring Boot的配置文件。
src/test/java
:存放测试代码。
四、简单应用
创建一个简单的Spring Boot应用程序:
创建主应用程序类:
java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
添加依赖 :在pom.xml
(Maven项目)或build.gradle
(Gradle项目)中添加所需的依赖。
创建REST控制器:
java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/")
public String hello() {
return "Hello, Spring Boot!";
}
}
运行应用程序:使用Maven或Gradle的相应命令来运行应用程序,或者直接使用Spring Boot的打包和运行功能。
五、完整代码应用
下面是一个简单的Spring Boot应用程序的代码示例,它展示了如何创建一个基本的REST API服务。
步骤 1: 创建主应用程序类
首先,创建一个带有@SpringBootApplication
注解的主类,这个注解是@Configuration
, @EnableAutoConfiguration
, 和 @ComponentScan
的快捷方式。
java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
步骤 2: 创建REST控制器
然后,创建一个控制器类,使用@RestController
注解来标记它是一个控制器,并使用@GetMapping
注解来处理HTTP GET请求。
java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
// 处理根URL的GET请求
@GetMapping("/")
public String index() {
return "Hello, Spring Boot!";
}
// 处理/api/users的GET请求
@GetMapping("/api/users")
public String listUsers() {
return "List of users";
}
}
步骤 3: 配置application.properties或application.yml
在src/main/resources
目录下创建application.properties
文件,用于配置应用程序的属性,比如服务器端口。
properties:
java
# application.properties
server.port=8080
或者使用application.yml
:
java
# application.yml
server:
port: 8080
步骤 4: 运行应用程序
使用你的IDE运行MyApplication
类的main
方法,或者如果你使用Maven或Gradle,可以通过以下命令来运行:
- Maven:
mvn spring-boot:run
- Gradle:
gradle bootRun
步骤 5: 访问应用程序
一旦应用程序运行起来,你可以使用浏览器或工具如curl或Postman来访问:
- 访问根URL:
http://localhost:8080/
- 访问API端点:
http://localhost:8080/api/users
附加:使用Spring Boot Actuator
Spring Boot Actuator提供了对应用程序的监控和管理功能。要添加Actuator,首先在pom.xml
或build.gradle
中添加Actuator依赖:
- Maven:
XML
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- Gradle:
gradle
java
implementation 'org.springframework.boot:spring-boot-starter-actuator'
然后在application.properties
或application.yml
中配置Actuator的端点:
properties
java
# application.properties
management.endpoints.web.exposure.include=health,info
或者:
yaml
XML
# application.yml
management:
endpoints:
web:
exposure:
include: health,info
现在,你可以访问Actuator的端点来获取应用程序的健康和信息状态:
- 健康状态:
http://localhost:8080/actuator/health
- 应用程序信息:
http://localhost:8080/actuator/info
这个示例展示了Spring Boot应用程序的基础结构和功能,包括创建REST控制器、配置应用程序属性和使用Spring Boot Actuator进行监控。