单例设计模式 以redise 的配置为例

enum Singleton {
        INSTANCE;

        private JedisCluster singleton;

        private Singleton() {
            Properties prop = new Properties();
            InputStream inputStream = UpicSoaPtiesUtil.class.getClassLoader()
                    .getResourceAsStream("redispoolinfo.properties");
            try {
                prop.load(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (inputStream != null) {
                        inputStream.close();
                    }
                } catch (IOException e) {
                    curr_logger
                            .info("/externalsource/java/src/com/taikang/redis/RedisManager.java Singleton "
                                    + e);
                    e.printStackTrace();
                }

            }
            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxTotal(Integer.valueOf((String) prop
                    .get("pool.confi.maxTotal")));
            config.setMaxIdle(Integer.valueOf((String) prop
                    .get("pool.confi.maxIdle")));
            config.setNumTestsPerEvictionRun(Integer.valueOf((String) prop
                    .get("pool.confi.numTestsPerEvictionRun")));
            config.setTimeBetweenEvictionRunsMillis(Integer
                    .valueOf((String) prop
                            .get("pool.confi.timeBetweenEvictionRunsMillis")));
            config.setMinEvictableIdleTimeMillis(Integer.valueOf((String) prop
                    .get("pool.confi.minEvictableIdleTimeMillis")));
            config.setSoftMinEvictableIdleTimeMillis(Integer
                    .valueOf((String) prop
                            .get("pool.confi.softMinEvictableIdleTimeMillis")));
            config.setMaxWaitMillis(Integer.valueOf((String) prop
                    .get("pool.confi.maxWaitMillis")));
            config.setTestOnBorrow(Boolean.valueOf((String) prop
                    .get("pool.confi.testOnBorrow")));
            config.setTestWhileIdle(Boolean.valueOf((String) prop
                    .get("pool.confi.testWhileIdle")));
            config.setBlockWhenExhausted(Boolean.valueOf((String) prop
                    .get("pool.confi.blockWhenExhausted")));
            Set<HostAndPort> set = new HashSet<HostAndPort>();
            set.add(new HostAndPort((String) prop.get("pool.confi.node1.ip"),
                    Integer.valueOf((String) prop.get("pool.confi.node1.port"))));
            set.add(new HostAndPort((String) prop.get("pool.confi.node2.ip"),
                    Integer.valueOf((String) prop.get("pool.confi.node2.port"))));
            set.add(new HostAndPort((String) prop.get("pool.confi.node3.ip"),
                    Integer.valueOf((String) prop.get("pool.confi.node3.port"))));
            singleton = new JedisCluster(set, config);
        }

        public JedisCluster getInstance() {
            return singleton;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值