亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用restTemplate遠(yuǎn)程調(diào)controller路徑取數(shù)據(jù)

 更新時間:2021年08月19日 14:58:16   作者:renhuan28  
這篇文章主要介紹了使用restTemplate遠(yuǎn)程調(diào)controller路徑取數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

restTemplate遠(yuǎn)程調(diào)controller路徑取數(shù)據(jù)

Spring的RestTemplate提供了很多對HTTP method的支持,這里主要說常用的get和post。

使用環(huán)境為springboot

首先要寫相關(guān)配置類,舉例:

@Configuration
public class Config {
  @Autowired
  RestTemplateBuilder builder;
  @Bean
  public RestTemplate restTemplate() {
    return builder.build();
  }
}

然后調(diào)目標(biāo)cotroller層,比如目標(biāo)cotroller層為

@RestController
@RequestMapping("/aaa")
public class TemplateController {
  @PostMapping(value = "/ppp")
  public List<Students> getInfo(@RequestBody String sid) {
    ...
    return stuService.getId(areaId);
  }
}

需要用post的方法去調(diào)

  @Autowired
  private RestTemplate restTemplate;
  public List<Student> getMsg() {
    String id = "111";
    HttpEntity<String> entity = buildEntity(id);
    String url = "http://ip:port/aaa/ppp";
    return restTemplate.postForObject(url, entity, List.class);
  }
  private HttpEntity<String> buildEntity(String id) {
    JSONObject jo = new JSONObject();
    jo.put("sid", id);
    String requestJson = jo.toJSONString();
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
    return new HttpEntity<String>(requestJson, headers);
  }

再比如目標(biāo)controller層為

@RestController
@RequestMapping(value = "/aaa")
public class StudentController {
    @GetMapping(value = "/ggg")
  public Set<Students> queryStudent(@RequestParam(value = "code") String code,
      @RequestParam(value = "objectKey") String objectKey,
      @RequestParam(value = "studentId") Integer studentId) {
    return sService.get(code, objectKey, kindId);
  }
}

需要用get的方法去調(diào)

 @Autowired
  private RestTemplate restTemplate;
  public Set queryStudent(String ip, int port,EventRelationTask eventRelationTask) {
    Integer studentId = eventRelationTask.getStudentId();
    String code = eventRelationTask.getCode();
    String objectKey = eventRelationTask.getObjectKey();
    String url =
        "http://" + ip + ":" + port + Student.PROJECTNAME + "event/queryparentnode?code=" + code + "&objectKey=" + objectKey + "&studentId=" + studentId;
    Set<Student> students = new HashSet<>();
    students = restTemplate.getForObject(url, Set.class);   //主要這個方法
    if (students != null) {
      return students;
    }
    return new HashSet();
  }

通過Spring的RestTemplate進(jìn)行跨模塊調(diào)用

Spring提供了一個RestTemplate模板工具類,對基于Http的客戶端進(jìn)行了封裝,并且實現(xiàn)對象與json的序列化和反序列化。首先在項目中新建controller方法

相關(guān)代碼如圖下所示:

在這里插入圖片描述

接著我們在另外一個項目中的啟動類的位置注冊一個RestTemplate實例

相關(guān)代碼可參考圖下所示:

在這里插入圖片描述

然后創(chuàng)建HttpTestController使用RestTemplate中最簡單的一個功能getForEntity發(fā)起了一個get請求去調(diào)用前一個項目中服務(wù)端的數(shù)據(jù)并返回結(jié)果。

在這里插入圖片描述

最后訪問http://localhost:8080/httpTestController/queryByname?name=張三就能看到list打印傳遞的值。需要注意的是圖1是第一個項目請求的,圖2是第二個項目通過跨服務(wù)跨項目請求得來的,它們兩者的端口號是不一樣的

運(yùn)行結(jié)果如下所示:

在這里插入圖片描述

(圖1)

在這里插入圖片描述

(圖2)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA必備開發(fā)神器之EasyCode

    IDEA必備開發(fā)神器之EasyCode

    對于java程序員來說,日常工作中就是crud的操作,每次都要搭建MVC三層,還是很繁瑣,這里就出現(xiàn)了神器easycode的工具.可以快速生成代碼.并且還可以自定義模板.需要的朋友可以參考下
    2021-05-05
  • java校驗json的格式是否符合要求的操作方法

    java校驗json的格式是否符合要求的操作方法

    在日常開發(fā)過程中,會有這樣的需求,校驗?zāi)硞€json是否是我們想要的數(shù)據(jù)格式,這篇文章主要介紹了java校驗json的格式是否符合要求,需要的朋友可以參考下
    2023-04-04
  • Java實現(xiàn)的連續(xù)奇數(shù)(n+2*x)是合數(shù)的算法題暴力算法

    Java實現(xiàn)的連續(xù)奇數(shù)(n+2*x)是合數(shù)的算法題暴力算法

    這篇文章主要介紹了Java實現(xiàn)的連續(xù)奇數(shù)(n+2*x)是合數(shù)的算法題暴力算法,本文包含運(yùn)算結(jié)果和實現(xiàn)代碼,需要的朋友可以參考下
    2014-09-09
  • java封裝及四種權(quán)限修飾符詳解

    java封裝及四種權(quán)限修飾符詳解

    這篇文章主要介紹了java封裝及四種權(quán)限修飾符詳解,對屬性進(jìn)行封裝,使用戶不能直接輸入數(shù)據(jù),我們需要避免用戶再使用"對象.屬性"的方式對屬性進(jìn)行賦值
    2022-08-08
  • Mybatis-plus實現(xiàn)主鍵自增和自動注入時間的示例代碼

    Mybatis-plus實現(xiàn)主鍵自增和自動注入時間的示例代碼

    這篇文章主要介紹了Mybatis-plus實現(xiàn)主鍵自增和自動注入時間的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java圖形界面開發(fā)之簡易記事本

    Java圖形界面開發(fā)之簡易記事本

    這篇文章主要為大家詳細(xì)介紹了Java圖形界面開發(fā)之簡易記事本的制作方法,,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • SpringCloud Gateway使用詳解

    SpringCloud Gateway使用詳解

    Spring Cloud Gateway是一個基于Spring Boot 2.x和Spring WebFlux的API網(wǎng)關(guān),可以幫助我們構(gòu)建微服務(wù)架構(gòu)中的統(tǒng)一入口。感興趣的同學(xué)可以參考一下
    2023-04-04
  • Javaweb項目session超時解決方案

    Javaweb項目session超時解決方案

    這篇文章主要介紹了Javaweb項目session超時解決方案,關(guān)于解決方案分類比較明確,內(nèi)容詳細(xì),需要的朋友可以參考下。
    2017-09-09
  • spring?java?動態(tài)獲取consul?K/V的方法

    spring?java?動態(tài)獲取consul?K/V的方法

    這篇文章主要介紹了spring?java?動態(tài)獲取consul?K/V的相關(guān)資料,主要包括springConsul配置kv路徑以及自動注入consulKV到服務(wù)中,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Spring配置shiro時自定義Realm中屬性無法使用注解注入的解決辦法

    Spring配置shiro時自定義Realm中屬性無法使用注解注入的解決辦法

    今天小編就為大家分享一篇關(guān)于Spring配置shiro時自定義Realm中屬性無法使用注解注入的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論