11.3、编码

要完成我们的应用,我们需要创建一个 Java 文件。默认情况下,Maven 将从 src/main/java 目录下编译源代码,因此您需要创建该文件夹结构,之后添加一个名为 src/main/java/Example.java 的文件:

  1. import org.springframework.boot.*;
  2. import org.springframework.boot.autoconfigure.*;
  3. import org.springframework.web.bind.annotation.*;
  4. @RestController
  5. @EnableAutoConfiguration
  6. public class Example {
  7. @RequestMapping("/")
  8. String home() {
  9. return "Hello World!";
  10. }
  11. public static void main(String[] args) throws Exception {
  12. SpringApplication.run(Example.class, args);
  13. }
  14. }

虽然没有多少代码,但它仍然做了很多事情。让我们看看里面重要的部分。

11.3.1、@RestController 与 @RequestMapping 注解

Example 类中的第一个注解是 @RestController,该注解被称作 stereotype 注解。它能为代码阅读者提供一些提示,对于 Spring 而言,这个类具有特殊作用。在本示例中,我们的类是一个 web @Controller,因此 Spring 在处理传入的 web 请求时会考虑它。

@RequestMapping 注解提供了 routing(路由)信息。它告诉 Spring,任何具有路径为 / 的 HTTP 请求都应映射到 home 方法。@RestController 注解告知 Spring 渲染结果字符串直接返回给调用者。

提示

@RestController@RequestMapping 是 Spring MVC 注解(它们不是 Spring Boot 特有的)。有关更多详细信息,请参阅 Spring 参考文档中的 MVC 章节

11.3.2、@EnableAutoConfiguration 注解

第二个类级别注解是 @EnableAutoConfiguration。此注解告知 Spring Boot 根据您添加的 jar 依赖来“猜测”您想如何配置 Spring 并进行自动配置,由于 spring-boot-starter-web 添加了 Tomcat 和 Spring MVC,auto-configuration(自动配置)将假定您要开发 web 应用并相应设置了 Spring。

Starter 与自动配置 Auto-configuration 被设计与 Starter 配合使用,但这两个概念并不是直接相关的。您可以自由选择 starter 之外的 jar 依赖,Spring Boot 仍然会自动配置您的应用程序。

11.3.3、main 方法

应用的最后一部分是 main 方法。这只是一个标准方法,其遵循 Java 规范中定义的应用程序入口点。我们的 main 方法通过调用 run 来委托 Spring Boot 的 SpringApplication 类,SpringApplication 类将引导我们的应用,启动 Spring,然后启动自动配置的 Tomcat web 服务器。我们需要将 Example.class 作为一个参数传递给 run 方法来告知 SpringApplication,它是 Spring 主组件。同时还传递 args 数组以暴露所有命令行参数。