Spring Boot 之 Consuming a RESTful Web Service

编程入门 行业动态 更新时间:2024-10-07 16:21:28

Spring Boot 之 <a href=https://www.elefans.com/category/jswz/34/1768979.html style=Consuming a RESTful Web Service"/>

Spring Boot 之 Consuming a RESTful Web Service

Consuming a RESTful Web Service .顾名思义,作为消费者,处理 RESTful Web Service返回的数据。


下载demo : git clone .git

进入项目

cd into gs-consuming-rest/initial

maven pom.xml 文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0" xmlns:xsi=""xsi:schemaLocation=".0.0 .0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.springframework</groupId><artifactId>gs-consuming-rest</artifactId><version>0.1.0</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.4.1.RELEASE</version></parent><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

restful 资源服务器  .

内容如下:

{type: "success",value: {id: 10,quote: "Really loving Spring Boot, makes stand alone Spring apps easy."}
}
分析返回json 数据格式  最外层是 type 和value , value 嵌套一个字典  包含 id 和 quote .

在开发中,一般一个字典对应一个对象,字典的键对应对象的属性。

通过分析我们需要创建两个对象,一个对象Quote包含id 和quote ,另一个对象 包含type 和value ,value的类型为Quote.


创建类:

src/main/java/hello/Quote.java

package hello;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;@JsonIgnoreProperties(ignoreUnknown = true)
public class Quote {private String type;private Value value;public Quote() {}public String getType() {return type;}public void setType(String type) {this.type = type;}public Value getValue() {return value;}public void setValue(Value value) {this.value = value;}@Overridepublic String toString() {return "Quote{" +"type='" + type + '\'' +", value=" + value +'}';}
}
@JsonIgnoreProperties 注解 未知属性将会被忽略。


创建另一个类

src/main/java/hello/Value.java

package hello;import com.fasterxml.jackson.annotation.JsonIgnoreProperties;@JsonIgnoreProperties(ignoreUnknown = true)
public class Value {private Long id;private String quote;public Value() {}public Long getId() {return this.id;}public String getQuote() {return this.quote;}public void setId(Long id) {this.id = id;}public void setQuote(String quote) {this.quote = quote;}@Overridepublic String toString() {return "Value{" +"id=" + id +", quote='" + quote + '\'' +'}';}
}
创建Application 

src/main/java/hello/Application.java

public class Application {private static final Logger log = LoggerFactory.getLogger(Application.class);public static void main(String args[]) {RestTemplate restTemplate = new RestTemplate();Quote quote = restTemplate.getForObject("", Quote.class);log.info(quote.toString());}}

RestTemplate 可请求restful web service 服务。 它可执行GET ,POST,PUT,DELETE请求。


运行代码可看到如下效果

2015-09-23 14:22:26.415  INFO 23613 --- [main] hello.Application  : Quote{type='success', value=Value{id=12, quote='@springboot with @springframework is pure productivity! Who said in #java one has to write double the code than in other langs? #newFavLib'}}

到目前为止,我们还没有在我们的应用程序使用Spring Boot,但有一些优势,这样做,这是不难做到。首先,我们想让Spring Boot

 管理消息转换器RestTemplate,以便自定义很容易添加声明。为此我们使用@ SpringBootApplication 启动它,

就像任意一个Spring Boot应用。最后我们到 commandlinerunner回调是由Spring Boot启动时执行:


package hello;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;@SpringBootApplication
public class Application {private static final Logger log = LoggerFactory.getLogger(Application.class);public static void main(String args[]) {SpringApplication.run(Application.class);}@Beanpublic RestTemplate restTemplate(RestTemplateBuilder builder) {return builder.build();}@Beanpublic CommandLineRunner run(RestTemplate restTemplate) throws Exception {return args -> {Quote quote = restTemplate.getForObject("", Quote.class);log.info(quote.toString());};}
}

原文: /
























更多推荐

Spring Boot 之 Consuming a RESTful Web Service

本文发布于:2024-02-28 08:49:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1769132.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Consuming   Boot   Spring   Service   Web

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!