RestTemplate使用实战(二)-复杂多层嵌套对象的处理和封装

在上一节的文章中,我们学习了restTemplate的基础用法。但是在日常的开发中,我们通常需要更加通用的方式来处理http远程调用。

先来回忆一下,发起一个请求需要哪些步骤:

        //1、设置访问url
		String url = RemoteUrl + "/id";
        //2、设置Http的Header
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON_UTF8);

		//3、设置访问参数
        HashMap<String, Object> params = new HashMap<>();
        params.put("name", name);
        
		//4、设置访问的Entity
        HttpEntity entity = new HttpEntity<>(params, headers);
        ResponseEntity<String> result = null;
        try {
   
        	//5、发起一个POST请求
            result = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
            JSONObject data = JSONObject.parseObject(result.getBody()).getJSONObject("data");
            return data.getString("id");

可以看到,每次发起http请求调用的时候,我们需要准备一系列的参数。如果在生产中,我们这样处理的话,那将会有很多的重复逻辑。

为了能更好的聚焦业务需求开发,我们需要提炼http远程请求的能力,提供统一的基础调用能力。

今天,就给大家带来restTemplate的使用实战进阶,restTemplate对复杂多层嵌套对象的处理和封装。

将分别通过开发中常用的两种序列化工具 fastjson和jackson来分别给交给大家。

类和对象

定义统一的返回类Result

public class Result<T> {
   

    private String code;
    private T data;
    private String message;

    public String getCode() {
   
        return code;
    }

    public void setCode(String code) {
   
        this.code = code;
    }

    public T getData() {
   
        return data;
    }

    public void setData(T data) {
   
        this.data = data;
    }

    public String getMessage() {
   
        return message;
    }

    public void setMessage(String message) {
   
        this.message = message;
    }
}

Fastjson

引入fastjson的依赖,建议使用1.2.68以上的版本,避免安全漏洞。

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.73</version>
        </dependency>

自定义restTemplate,以post请求为例,提供统一的封装。

@Component
public class MyRestTemplate {
   

    private Logger logger = LoggerFactory.getLogger(MyRestTemplate.class);

    private static final String HTTP_STATUS_SUCCESS = "200";

    @Autowired
    private RestTemplate restTemplate;

    public <T> T postForResult(String url, Class<T> cls, Object body, Object... uriVariables) {
   
        Respo
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
在 Element UI 中,`el-row` 和 `el-col` 可以多层嵌套使用,实现更加复杂的布局。例如,可以通过多层嵌套实现两列布局中,左侧固定宽度,右侧自适应宽度的效果。 下面是一个示例代码,展示了如何使用多层嵌套的 `el-row` 和 `el-col` 实现这个效果: ```html <template> <el-row> <el-col :span="6"> <div class="left">左侧固定宽度</div> </el-col> <el-col :span="18"> <el-row> <el-col :span="8"> <div class="right">右侧自适应宽度</div> </el-col> <el-col :span="8"> <div class="right">右侧自适应宽度</div> </el-col> <el-col :span="8"> <div class="right">右侧自适应宽度</div> </el-col> </el-row> </el-col> </el-row> </template> <script> export default { data() { return {} } } </script> <style scoped> .left { width: 200px; height: 100px; background-color: #ccc; } .right { height: 100px; background-color: #ddd; margin: 10px; } </style> ``` 在这个示例中,外层的 `el-row` 表示整个布局的行,其中包含两个 `el-col`,分别表示左侧固定宽度区域和右侧自适应宽度区域。右侧自适应宽度的区域再次使用了 `el-row` 和 `el-col` 进行多层嵌套,实现了三列等宽的布局。 注意,在多层嵌套的情况下,需要根据具体情况来设置 `span` 属性,以实现合适的布局效果。同时,也需要注意多层嵌套可能会导致布局嵌套层级过深,对页面的性能和维护带来不利影响。因此,在实际开发中,应根据具体情况来选择合适的布局方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值