集成restTemplate

This commit is contained in:
zhh 2018-09-18 16:59:12 +08:00
parent e298a170d3
commit 30bb4cd0f9
4 changed files with 139 additions and 3 deletions

View File

@ -59,9 +59,11 @@ SpringTask定时任务支持 | ✔
docker容器化部署 | ✔
配置区分生产和测试环境 | ✔
ELK日志收集功能 | ✔
RestTemplate服务间调用 |
RabbitMq异步通信 |
RabbitMq异步通信 | ✔
RestTemplate服务间调用 | ✔
SpringSecurity权限管理功能 |
集成SpringCloud |
集成SpringCloudSecurity |
### 使用工具

View File

@ -0,0 +1,17 @@
package com.macro.mall.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
/**
* RestTemplate的配置
* Created by macro on 2018/9/18.
*/
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}

View File

@ -0,0 +1,109 @@
package com.macro.mall.demo.controller;
import com.macro.mall.demo.dto.CommonResult;
import com.macro.mall.model.PmsBrand;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponents;
import org.springframework.web.util.UriComponentsBuilder;
import java.util.HashMap;
import java.util.Map;
/**
* RestTemplate示例Controller
* Created by macro on 2018/9/17.
*/
@Api(value = "RestTemplateDemoController", description = "RestTemplate示例")
@Controller
@RequestMapping("/template")
public class RestTemplateDemoController {
@Autowired
private RestTemplate restTemplate;
@Value("${host.mall.admin}")
private String HOST_MALL_ADMIN;
@ApiOperation("getForEntity url")
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
@ResponseBody
public Object getForEntity(@PathVariable Long id) {
String url = HOST_MALL_ADMIN + "/brand/{id}";
ResponseEntity<CommonResult> responseEntity = restTemplate.getForEntity(url, CommonResult.class, id);
return responseEntity.getBody();
}
@ApiOperation("getForEntity params")
@RequestMapping(value = "/get2/{id}", method = RequestMethod.GET)
@ResponseBody
public Object getForEntity2(@PathVariable Long id) {
String url = HOST_MALL_ADMIN + "/brand/{id}";
Map<String, String> params = new HashMap<>();
params.put("id", String.valueOf(id));
ResponseEntity<CommonResult> responseEntity = restTemplate.getForEntity(url, CommonResult.class, params);
return responseEntity.getBody();
}
@ApiOperation("getForEntity Uri")
@RequestMapping(value = "/get3/{id}", method = RequestMethod.GET)
@ResponseBody
public Object getForEntity3(@PathVariable Long id) {
String url = HOST_MALL_ADMIN + "/brand/{id}";
UriComponents uriComponents = UriComponentsBuilder.fromUriString(url).build().expand(id).encode();
ResponseEntity<CommonResult> responseEntity = restTemplate.getForEntity(uriComponents.toUri(), CommonResult.class);
return responseEntity.getBody();
}
@ApiOperation("getForObject url")
@RequestMapping(value = "/get4/{id}", method = RequestMethod.GET)
@ResponseBody
public Object getForObject(@PathVariable Long id) {
String url = HOST_MALL_ADMIN + "/brand/{id}";
CommonResult commonResult = restTemplate.getForObject(url, CommonResult.class, id);
return commonResult;
}
@ApiOperation("postForEntity jsonBody")
@RequestMapping(value = "/post", method = RequestMethod.POST)
@ResponseBody
public Object postForEntity(@RequestBody PmsBrand brand) {
String url = HOST_MALL_ADMIN + "/brand/create";
ResponseEntity<CommonResult> responseEntity = restTemplate.postForEntity(url, brand, CommonResult.class);
return responseEntity.getBody();
}
@ApiOperation("postForEntity jsonBody")
@RequestMapping(value = "/post2", method = RequestMethod.POST)
@ResponseBody
public Object postForObject(@RequestBody PmsBrand brand) {
String url = HOST_MALL_ADMIN + "/brand/create";
CommonResult commonResult = restTemplate.postForObject(url, brand, CommonResult.class);
return commonResult;
}
@ApiOperation("postForEntity form")
@RequestMapping(value = "/post3", method = RequestMethod.POST)
@ResponseBody
public Object postForEntity3(@RequestParam String name) {
String url = HOST_MALL_ADMIN + "/productAttribute/category/create";
//设置头信息
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//构造表单参数
MultiValueMap<String, String> params= new LinkedMultiValueMap<>();
params.add("name", name);
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);
ResponseEntity<CommonResult> responseEntity = restTemplate.postForEntity(url, requestEntity, CommonResult.class);
return responseEntity.getBody();
}
}

View File

@ -1,3 +1,7 @@
#===server start===
server.port=8082
#===server end===
#数据库连接池配置
spring.datasource.url=jdbc:mysql://localhost:3306/mall
spring.datasource.username=root
@ -21,4 +25,8 @@ spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false
#thymeleaf end
#thymeleaf end
#host ÅäÖÃ start
host.mall.admin=http://localhost:8080
#host ÅäÖÃ end