diff --git a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/config/WxMaAutoConfiguration.java b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/config/WxMaAutoConfiguration.java index a07e8008bc..1fcd0841ba 100644 --- a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/config/WxMaAutoConfiguration.java +++ b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/config/WxMaAutoConfiguration.java @@ -77,7 +77,7 @@ public WxMaConfig wxMaConfig() { WxMaDefaultConfigImpl config; switch (wxMaProperties.getConfigStorage().getType()) { case Jedis: - config = wxMaJedisConfigStorage(); + config = WxMaRedisBetterConfig.config(wxMaProperties, applicationContext); break; case RedisTemplate: config = wxMaRedisTemplateConfigStorage(); @@ -107,35 +107,39 @@ private WxMaDefaultConfigImpl wxMaDefaultConfigStorage() { return new WxMaDefaultConfigImpl(); } - private WxMaDefaultConfigImpl wxMaJedisConfigStorage() { - RedisProperties redisProperties = wxMaProperties.getConfigStorage().getRedis(); - JedisPool jedisPool; - if (StringUtils.isNotEmpty(redisProperties.getHost())) { - JedisPoolConfig config = new JedisPoolConfig(); - if (redisProperties.getMaxActive() != null) { - config.setMaxTotal(redisProperties.getMaxActive()); - } - if (redisProperties.getMaxIdle() != null) { - config.setMaxIdle(redisProperties.getMaxIdle()); - } - if (redisProperties.getMaxWaitMillis() != null) { - config.setMaxWaitMillis(redisProperties.getMaxWaitMillis()); - } - if (redisProperties.getMinIdle() != null) { - config.setMinIdle(redisProperties.getMinIdle()); - } - config.setTestOnBorrow(true); - config.setTestWhileIdle(true); + private static class WxMaRedisBetterConfig { - jedisPool = new JedisPool(config, redisProperties.getHost(), redisProperties.getPort(), - redisProperties.getTimeout(), redisProperties.getPassword(), redisProperties.getDatabase()); - } else { - jedisPool = applicationContext.getBean(JedisPool.class); + private static WxMaDefaultConfigImpl config(WxMaProperties wxMaProperties, ApplicationContext context) { + RedisProperties redisProperties = wxMaProperties.getConfigStorage().getRedis(); + JedisPool jedisPool; + if (StringUtils.isNotEmpty(redisProperties.getHost())) { + JedisPoolConfig config = new JedisPoolConfig(); + if (redisProperties.getMaxActive() != null) { + config.setMaxTotal(redisProperties.getMaxActive()); + } + if (redisProperties.getMaxIdle() != null) { + config.setMaxIdle(redisProperties.getMaxIdle()); + } + if (redisProperties.getMaxWaitMillis() != null) { + config.setMaxWaitMillis(redisProperties.getMaxWaitMillis()); + } + if (redisProperties.getMinIdle() != null) { + config.setMinIdle(redisProperties.getMinIdle()); + } + config.setTestOnBorrow(true); + config.setTestWhileIdle(true); + + jedisPool = new JedisPool(config, redisProperties.getHost(), redisProperties.getPort(), + redisProperties.getTimeout(), redisProperties.getPassword(), redisProperties.getDatabase()); + } else { + jedisPool = context.getBean(JedisPool.class); + } + WxRedisOps redisOps = new JedisWxRedisOps(jedisPool); + return new WxMaRedisBetterConfigImpl(redisOps, wxMaProperties.getConfigStorage().getKeyPrefix()); } - WxRedisOps redisOps = new JedisWxRedisOps(jedisPool); - return new WxMaRedisBetterConfigImpl(redisOps, wxMaProperties.getConfigStorage().getKeyPrefix()); } + private WxMaDefaultConfigImpl wxMaRedisTemplateConfigStorage() { StringRedisTemplate redisTemplate = applicationContext.getBean(StringRedisTemplate.class); WxRedisOps redisOps = new RedisTemplateWxRedisOps(redisTemplate);