索鸟网

  1. 首页
  2. 网络框架参数构建方式优化

网络框架参数构建方式优化


RestClient之前的Params参数Map是一个全局的静态变量,后来在和同学们一起优化的过程中,发现单独初始化是更好的,因为不能保证多线程或同时网络请求操作的唯一性,这里加锁反而是一个多余且低效的行为,所以做以下优化

  /**
     * 参数容器
     */
    private static final class ParamsHolder {
        private static final WeakHashMap<String, Object> PARAMS = new WeakHashMap<>();
    }

    public static WeakHashMap<String, Object> getParams() {
        return ParamsHolder.PARAMS;
    }

这段代码注释掉
然后RestClientBuilder 和RxRestClientBuilder在开始分别执行

private final WeakHashMap<String, Object> PARAMS = new WeakHashMap<>();

同时RestClient,DownloadHandler和RxRestClient种构造方法里,params通过参数传递获取

  this.PARAMS = params;

特别感谢细心的@桂 同学

相关标签: JAVA Android

来源地址:http://www.imooc.com/article/19245 版权归作者所有!

相关教程

  • vue构建优化

    原因 在使用vue开发单页面应用时,随着项目页面的增多,你会发现生产环境的build速度会很慢,同时页面初始的js大小越来越大。当你无法忍受的时候就该优化了。 思路 这方面的优化无非就是异步加载、提取一部分长期不需要更新代码的基础js库。 方案 一、异步加载(懒加载) 可以采用vue-router的路由懒加载点击链接进行学习 二、对于提取基础库 可以学习
  • 网络请求框架

    retrofit_okhttp public class Model { //使用前提:必须添加4个依赖库 Retrofit retrofit; //服务器地址 public static final String BASE_URL = "http://....com"; public static final String ID = "44297";
  • Jenkins参数化构建android项目

    原文来自:www.litchicoder.top/home/jenkins%E5%8F%82%E6%95%B0%E5%8C%96%E6%9E%84%E5%BB%BAandroid%E9%A1%B9%E7%9B%AE/ 达到的目标: 1.根据版本类型(release、beta or degub)、版本号、渠道、服务器请求地址等参数构建; 2.构建完成后显示相关构建信息;
  • 优化你的Grunt构建

    在前端开发的今天,如果没用过Grunt或Gulp你还真就不好意思和人打招呼的(今天先说Grunt)。因为前端开发变得越来越复杂,前端工程化也越来越重要。当然,相信读者都能快速通过Grunt完成自己的前端工作流(workflow),下面是一个常见的Gruntfile.js, 它也的确能很好地工作。 module.exports = function(grunt) {
  • MyBaties 几种传参数的方式

    第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xml <select id="selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_name =
  • 网络框架 - 收藏集 - 掘金

    浅谈 Retrofit 封装 - 让框架更加简洁易用 - Android - 掘金 尊重他人的劳动成果,转载请标明出处:http://blog.csdn.net/gengqiqu..., 本文出自:【gengqiquan的博客】 不... [[译] 网络请求框架 Retrofit 2 使用入门 - Android - 掘金](https://juejin
  • express 框架中的参数小记

    首发地址:https://clarencep.com/2017/04...转载请注明出处 注意:req.params 只有在参数化的路径中的参数。查询字符串中的参数要用 req.query. 比如: // server.js: app.post("/user/:id", function(req, res){ console.log("req.p
  • 使用iptables作为网络防火墙构建安全的网络环境

    前言一般情况下iptables只作为主机防火墙使用,但是在特殊情况下也可以使用iptables对整个网络进行流量控制和网络安全防护等功能,在本文中,我们使用iptables对三台服务器的安全进行安全防护网络防火墙的优势网络防火墙相比于主机防火墙而言,范围更大,不用对网络内的各主机各自设置防火墙规则就可以保证其安全性,但是必须在网络的进出口才能对出入数据包进行限制实验拓扑图实验环境