一、基本介绍
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应用程序:
创建主应用程序类:
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控制器:
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的快捷方式。
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请求。
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:
# application.properties
server.port=8080或者使用application.yml:
# 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:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>- Gradle:
gradle
implementation 'org.springframework.boot:spring-boot-starter-actuator'然后在application.properties或application.yml中配置Actuator的端点:
properties
# application.properties
management.endpoints.web.exposure.include=health,info或者:
yaml
# 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进行监控。