zoukankan      html  css  js  c++  java
  • JsonUtils工具整理

    import java.lang.reflect.Type;
    
    import org.apache.commons.pool2.impl.GenericObjectPool;
    import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
    
    import com.google.gson.Gson;
    public class JsonPoolUtils {
    
        private static ThreadLocal<JsonPoolUtils> instance = new ThreadLocal<JsonPoolUtils>();
    
        protected static GenericObjectPool<Gson> pool;
    
        static {
            if (instance.get() == null || pool == null) {
                GenericObjectPoolConfig conf = new GenericObjectPoolConfig();
                conf.setMaxTotal(32);
                conf.setMaxIdle(4);
                pool = new GenericObjectPool<Gson>(new PooledGsonFactory(), conf);
            }
        }
    
        public final static <T> T fromJson(String json, Type typeOfT) {
            if (json == null) {
                return null;
            }
            Gson gson = null;
            try {
                gson = pool.borrowObject();
            } catch (Exception e) {
                e.printStackTrace();
            }
            T t = gson.fromJson(json, typeOfT);
            pool.returnObject(gson);
            return t;
        }
    
        public final static String toJson(Object src) {
            if (src == null) {
                return null;
            }
            Gson gson = null;
            try {
                gson = pool.borrowObject();
            } catch (Exception e) {
                e.printStackTrace();
            }
            String string = gson.toJson(src);
            pool.returnObject(gson);
            return string;
        }
    }
    import java.sql.Timestamp;
    
    import org.apache.commons.pool2.BasePooledObjectFactory;
    import org.apache.commons.pool2.PooledObject;
    import org.apache.commons.pool2.impl.DefaultPooledObject;
    
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    
    public class PooledGsonFactory extends BasePooledObjectFactory<Gson> {
    
        @Override
        public Gson create() throws Exception {
            return new GsonBuilder().registerTypeAdapter(Timestamp.class, new TimestampTypeAdapter()).create();
        }
    
        @Override
        public PooledObject<Gson> wrap(Gson obj) {
            return new DefaultPooledObject<Gson>(obj);
        }
    
    }
  • 相关阅读:
    git回滚分支版本到指定版本
    java的垃圾回收
    java对象模型
    java内存模型
    偏向锁浅析
    maven打包报错:在类路径或引导类路径中找不到程序包 java.lang
    《microsoft sql server 2008技术内幕 t-sql语言基础》
    《SQL基础教程》
    内连接,外链接(左连接、右连接、全连接),交叉连接大总结+附SQL JOINS图解[转]
    《大型网站技术架构》1.大型网站架构演练
  • 原文地址:https://www.cnblogs.com/light-zhang/p/8745126.html
Copyright © 2011-2022 走看看