Spring boot REST示例

时间:2020-02-23 14:35:49  来源:igfitidea点击:

在本教程中,我们将看到如何使用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"。