文章节将简单介绍 Spring Boot 项目是怎样运行起来的,要运行一个 Spring Boot 项目我们需要的最小配置。还是以前面的“Spring Boot Hello”项目为例。
我们先看看 Spring Boot Hello 项目中,核心类 SpringbootHelloApplication 的代码:
package com.huangx.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 该类是我们整个 Spring Boot 项目的入口类,这个类有一个 @SpringBootApplication 注解, * 该注解是整个 Spring Boot 的核心注解,它的目的就是开启 Spring Boot 的自动配置。 * 我在这个类上再添加一个 @RestController 注解,使之变为一个Controller, * 然后里边提供一个地址转换方法。 * * @author Administrator */ @RestController @SpringBootApplication public class SpringbootHelloApplication { public static void main(String[] args) { // 启动Spring Boot SpringApplication.run(SpringbootHelloApplication.class, args); } @RequestMapping(value = "/", produces = "text/plain;charset=UTF-8") public String index() { // 返回字符串到前端 return "Hello Spring Boot!"; } }
SpringbootHelloApplication 类在 Spring Boot 应用程序里有两个作用:
(1)启动引导:在 main() 方法中,使用 SpringApplication.run(SpringbootHelloApplication.class, args) 代码去启动引导 Spring Boot。
(2)自动配置:SpringbootHelloApplication 类是主要的 Spring Boot 配置类。虽然 Spring Boot 的自动配置免除了很多 Spring 配置,但你还需要进行少量配置来启用自动配置。其中,@SpringBootApplication 注解开启了 Spring 的组件扫描和 Spring Boot 的自动配置功能。实际上,@SpringBootApplication 注解将三个有用的注解组合在了一起。它们分别如下:
@Configuration:标明该类使用 Spring 基于 Java 的配置。Spring Boot 更倾向于使用基于 Java 而不是 XML 的配置。
@ComponentScan:启用组件扫描,这样你编写的 Web 控制器类和其他组件才能被自动发现并注册为 Spring 应用程序上下文里的 Bean。该项目使用 @RestController 注解标明该类为 Spring MVC 控制器,这样组件扫描才能找到它。
@EnableAutoConfiguration : 就是这一行配置开启了 Spring Boot 自动配置,让你不用再写成篇的配置了。
注意:在 Spring Boot 的早期版本中,你需要在 SpringbootHelloApplication 类上同时标上上面的三个注解,但从 Spring Boot 1.2.0 开始,有 @SpringBootApplication 就行了。