在本教程中,我们将创建一个简单的 Spring Boot RESTful 应用。 我们的应用将部署在嵌入式 Tomcat 服务器上。
我们展示了如何从 Web 服务中以 JSON 和 XML 格式返回数据。
Spring Boot
Spring 是用于创建企业应用的流行 Java 应用框架。 Spring Boot 是一种以最少的精力创建独立的,基于生产级别的基于 Spring 的应用的方法。
RESTFul 应用
RESTFul 应用创建遵循 REST 体系结构样式的系统(API),该系统用于设计联网应用。 RESTful 应用使用 HTTP 请求对资源执行 CRUD(创建/读取/更新/删除)操作。
Spring Boot RESTFul 简单示例
以下代码示例创建一个 Web 服务,该服务从 CSV 文件读取数据并将其以 JSON 格式返回给客户端。
这是项目结构。
pom.xml
这是 Maven 构建文件。 opencsv
用于处理 CSV 数据。 spring-boot-starter-web
是用于构建 Web 和 RESTful 应用的入门工具。 该应用打包到可执行的 JAR 文件中。 可执行 JAR 是使用spring-boot-maven-plugin
创建的。
application.yml
application.yml
文件包含 Spring Boot 应用的各种配置设置。 我们具有服务器端口和上下文路径(应用名称)的映射。 该文件位于src/main/resources
目录中。
countries.csv
src/main/resources
目录中的countries.csv
包含我们的应用中使用的数据。
Country.java
countries.csv
文件中的字段映射到Country
类。
ICountryService.java
这是ICountryService
接口。 它包含一种称为findAll()
的方法。
CountryService.java
这是ICountryService
合同的执行。 它包含findAll()
方法,该方法从countries.csv
文件中读取数据并返回Country
对象的列表。
MyController.java
这是 Spring Boot RESTful 应用的控制器类。 @RestController
注解创建一个 RESTful 控制器。 传统的 MVC 控制器使用ModelAndView
,而 RESTful 控制器仅返回对象,并且对象数据以 JSON 或 XML 格式直接写入 HTTP 响应。
我们将CountryService
注入countryService
变量中。
@RequestMapping
注解用于将 Web 请求映射到 Spring 控制器方法。 在这里,我们将具有/countries
路径的请求映射到控制器的listCountries()
方法。 默认请求是 GET 请求。
我们不需要手动将Country
域对象转换为 JSON。 因为 Jackson 2 在类路径上,所以 Spring 自动选择MappingJackson2HttpMessageConverter
将Country
实例转换为 JSON。
Application.java
Application
设置 Spring Boot 应用。 @SpringBootApplication
启用自动配置和组件扫描。
使用mvn package
命令,构建应用。
使用mvn spring-boot:run
命令,运行应用。 该应用部署在嵌入式 Tomcat 服务器上。
使用curl
命令,测试应用。
返回 XML 数据
要返回 XML 数据而不是 JSON,我们需要添加一个依赖项并修改控制器。
我们将jackson-dataformat-xml
添加到依赖项。
MyController.java
我们选择MediaType.APPLICATION_XML_VALUE
类型来告诉控制器返回 XML 数据。
在本教程中,我们创建了一个 Spring Boot RESTful 应用,该应用以 JSON 和 XML 返回数据。