您可以使用这个[预先初始化的项目](https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.5.5&packaging=jar&jvmVersion=11&groupId=com.example&artifactId=rest-service&name=rest-service&description=Demo project for Spring Boot&packageName=com.example.rest-service&dependencies=web)并单击 Generate 下载 ZIP 文件。此项目配置为适合本教程中的示例。
您可以使用这个[预先初始化的项目](https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.5.5&packaging=jar&jvmVersion=11&groupId=com.example&artifactId=rest-service&name=rest-service&description=Demo project for Spring Boot&packageName=com.example.rest-service&dependencies=web)并单击 Generate 下载 ZIP 文件。此项目配置兼容本教程中的示例。
在 Spring 构建 RESTful Web 服务的方法中,HTTP 请求由控制器处理。这些组件由[`@RestController`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html)注释标识,`GreetingController`下面的清单 (from )通过返回类的新实例来`src/main/java/com/example/restservice/GreetingController.java`处理`GET`请求:`/greeting``Greeting`
在 Spring 构建的 RESTful Web 服务中,HTTP 请求由控制器处理。这些组件由[`@RestController`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html)注释标识,如下 `GreetingController`实例(参看 `src/main/java/com/example/restservice/GreetingController.java`)处理`GET`请求:`/greeting`
```
packagecom.example.restservice;
...
...
@@ -138,29 +138,31 @@ public class GreetingController {
}
```
这个控制器简洁明了,但引擎盖下有很多事情要做。我们一步一步分解。
这个控制器简洁明了,但底层有很多事情要做。我们一步一步分解。
`@GetMapping`注释确保 HTTP GET 请求`/greeting`映射到`greeting()`方法。
`@GetMapping`注解确保 HTTP GET 请求`/greeting` 可以映射到`greeting()`方法。
该`Greeting`对象必须转换为 JSON。感谢 Spring 的 HTTP 消息转换器支持,您无需手动进行此转换。因为[Jackson 2](https://github.com/FasterXML/jackson)在类路径上,所以会自动选择 Spring[`MappingJackson2HttpMessageConverter`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.html)将`Greeting`实例转换为 JSON。
该`Greeting`对象必须转换为 JSON 格式。依赖于 Spring 的 HTTP 消息转换器支持,您无需手动进行此转换。因为classpath里面已经包含[Jackson 2](https://github.com/FasterXML/jackson),所以会自动选择Spring的[`MappingJackson2HttpMessageConverter`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.html)将`Greeting`实例转换为JSON格式。
`@SpringBootApplication`是一个方便的注释,它添加了以下所有内容:
`@SpringBootApplication`是一个方便的注释,它包含了以下所有内容:
-`@Configuration`: 将类标记为应用程序上下文的 bean 定义源。
-`@EnableAutoConfiguration`:告诉 Spring Boot 根据类路径设置、其他 bean 和各种属性设置开始添加 bean。例如,如果`spring-webmvc`位于类路径上,则此注释将应用程序标记为 Web 应用程序并激活关键行为,例如设置`DispatcherServlet`.
-`@ComponentScan`: 告诉 Spring 在包中查找其他组件、配置和服务`com/example`,让它找到控制器。
-`@Configuration`: 在应用程序上下文中,将类标记为bean。
-`@EnableAutoConfiguration`:告诉 Spring Boot 根据类路径设置、其他 bean 和各种属性设置扫描并添加bean。例如,如果`spring-webmvc`位于类路径上,则此注释将应用程序标记为 Web 应用程序并激活关键行为,例如设置`DispatcherServlet`.
-`@ComponentScan`: 告诉 Spring 在包`com/example`中扫描其他components, configurations及services类
该`main()`方法使用 Spring Boot 的`SpringApplication.run()`方法来启动应用程序。您是否注意到没有一行 XML?也没有`web.xml`文件。这个 Web 应用程序是 100% 纯 Java,您不必处理任何管道或基础设施的配置。
该`main()`方法使用 Spring Boot 的`SpringApplication.run()`方法来启动应用程序。您是否注意到我们没有配置一行 XML?也没有`web.xml`文件。这个 Web 应用程序是 100% 纯 Java,您不必处理任何管道或基础设施的配置。