Spring boot REST示例
在本教程中,我们将看到如何使用Spring Boot创建RESTful Web服务。
使用我们之前已经见过的Spring Rest JSON创建REST API之间没有许多差异。
Spring boot 只是让API更容易。
我们不必在类路径中提供任何另外的JSON依赖项。
Spring Boot将处理创建REST API所需的所有依赖项。
以下是创建一个简单的Spring启动休息示例的步骤。
Spring boot REST示例:
第1步:使用名为"springbootrestapiexample"的Eclipse中的Maven创建动态Web项目。
第2步:现在更改pom.xml如下:pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.igi.theitroad</groupId> <artifactId>SpringBootRestAPIExample</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>SpringBootRestAPIExample Maven Webapp</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.3.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <finalName>SpringBootRestAPIExample</finalName> </build> </project>
第3步:在org.igi.theitroad.springboot.bean中创建bean名称"country.java"。
package org.igi.theitroad.bean; public class Country{ int id; String countryName; public Country(int i, String countryName) { super(); this.id = i; this.countryName = countryName; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCountryName() { return countryName; } public void setCountryName(String countryName) { this.countryName = countryName; } }
创建控制器
第4步:在包org.igi.theitroad.springboot中创建名为"countrycontroller.java"的控制器
package org.igi.theitroad.springboot; import java.util.ArrayList; import java.util.List; import org.igi.theitroad.springboot.bean.Country; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController public class CountryController { @RequestMapping(value = "/countries", method = RequestMethod.GET,headers="Accept=application/json") public List<Country> getCountries() { List<Country> listOfCountries = new ArrayList<Country>(); listOfCountries=createCountryList(); return listOfCountries; } @RequestMapping(value = "/country/{id}", method = RequestMethod.GET,headers="Accept=application/json") public Country getCountryById(@PathVariable int id) { List<Country> listOfCountries = new ArrayList<Country>(); listOfCountries=createCountryList(); for (Country country: listOfCountries) { if(country.getId()==id) return country; } return null; } //Utiliy method to create country list. public List<Country> createCountryList() { Country NetherlandsCountry=new Country(1, "Netherlands"); Country chinaCountry=new Country(4, "China"); Country nepalCountry=new Country(3, "Nepal"); Country bhutanCountry=new Country(2, "Bhutan"); List<Country> listOfCountries = new ArrayList<Country>(); listOfCountries.add(NetherlandsCountry); listOfCountries.add(chinaCountry); listOfCountries.add(nepalCountry); listOfCountries.add(bhutanCountry); return listOfCountries; } }
@PathVariable:用于将来自URL的值注入方法参数。
我们在getCountrybyID方法中注入的方式。
Spring应用程序配置:
第5步:创建名为"org.igi.theitroad"的包创建一个名为"springboothellyorldapplication.java"的类
package org.igi.theitroad; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootHelloWorldApplication { public static void main(String[] args) { SpringApplication.run(SpringBootHelloWorldApplication.class, args); } }
我们刚刚添加了@springbootapplication,它做了所有的工作。
让我们了解更多关于这个注释的信息。
@springBootApplication是添加以下所有内容的注释:
@configuration使类作为应用程序上下文的Bean定义的源。
@EnableAutoConfiguration允许Spring Boot在ClassPath设置和各种属性设置中添加Bean礼物。
通常,我们将为Spring MVC应用程序添加@bableWebMVC,但Spring Boot会在类路径上看到Spring-WebMVC时自动添加它。
将应用程序标记为Web应用程序,并激活诸如设置DispatcherServlet之类的关键行为。
@ComponentsCan告诉Spring在默认包中查找其他组件,配置和服务,允许它找到控制器。
如果未定义特定包,则会从声明此注释的类的包中扫描。
第6步:这是时候制作了maven的时候了。
右键单击项目 - >运行AS - > Maven Build
第7步:将目标作为清洁安装(如下所示),然后单击"运行"。
第8步:测试休息服务下:"http://localhost:8080 /国家"。
我们将获取以下输出:
步骤9:现在将国家/地区ID传递为URL的参数。
"http://localhost:8080/country/2"。