diff --git a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md index e58dfc8c8..3d4fae241 100644 --- a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md +++ b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/README.md @@ -18,12 +18,12 @@ wx.miniapp.msgDataFormat = @msgDataFormat # 消息格式,XML或者JSON. # 存储配置redis(可选) # 注意: 指定redis.host值后不会使用容器注入的redis连接(JedisPool) - wx.miniapp.config-storage.type = jedis # 配置类型: memory(默认), jedis, redistemplate + wx.miniapp.config-storage.type = Jedis # 配置类型: Memory(默认), Jedis, RedisTemplate wx.miniapp.config-storage.key-prefix = wa # 相关redis前缀配置: wa(默认) wx.miniapp.config-storage.redis.host = 127.0.0.1 wx.miniapp.config-storage.redis.port = 6379 # http客户端配置 - wx.miniapp.config-storage.http-client-type=httpclient # http客户端类型: httpclient(默认) + wx.miniapp.config-storage.http-client-type=HttpClient # http客户端类型: HttpClient(默认) wx.miniapp.config-storage.http-proxy-host= wx.miniapp.config-storage.http-proxy-port= wx.miniapp.config-storage.http-proxy-username= diff --git a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/pom.xml b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/pom.xml index f710eb137..dc63257c7 100644 --- a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/pom.xml +++ b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/pom.xml @@ -22,13 +22,11 @@ redis.clients jedis - provided org.springframework.data spring-data-redis ${spring.boot.version} - provided 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 1c6d7865f..ab843ab5b 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 @@ -5,6 +5,9 @@ import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; import cn.binarywang.wx.miniapp.config.WxMaConfig; import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; import cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl; +import com.binarywang.spring.starter.wxjava.miniapp.enums.StorageType; +import com.binarywang.spring.starter.wxjava.miniapp.properties.ConfigStorage; +import com.binarywang.spring.starter.wxjava.miniapp.properties.RedisProperties; import com.binarywang.spring.starter.wxjava.miniapp.properties.WxMaProperties; import lombok.AllArgsConstructor; import me.chanjar.weixin.common.redis.JedisWxRedisOps; @@ -54,14 +57,17 @@ public class WxMaAutoConfiguration { @Bean @ConditionalOnMissingBean(WxMaConfig.class) public WxMaConfig wxMaConfig() { - WxMaProperties.StorageType type = wxMaProperties.getConfigStorage().getType(); WxMaDefaultConfigImpl config; - if (type == WxMaProperties.StorageType.jedis) { - config = wxMaInJedisConfigStorage(); - } else if (type == WxMaProperties.StorageType.redistemplate) { - config = wxMaInRedisTemplateConfigStorage(); - } else { - config = wxMaInMemoryConfigStorage(); + switch (wxMaProperties.getConfigStorage().getType()) { + case Jedis: + config = wxMaJedisConfigStorage(); + break; + case RedisTemplate: + config = wxMaRedisTemplateConfigStorage(); + break; + default: + config = wxMaDefaultConfigStorage(); + break; } config.setAppid(StringUtils.trimToNull(this.wxMaProperties.getAppid())); @@ -70,7 +76,7 @@ public class WxMaAutoConfiguration { config.setAesKey(StringUtils.trimToNull(this.wxMaProperties.getAesKey())); config.setMsgDataFormat(StringUtils.trimToNull(this.wxMaProperties.getMsgDataFormat())); - WxMaProperties.ConfigStorage configStorageProperties = wxMaProperties.getConfigStorage(); + ConfigStorage configStorageProperties = wxMaProperties.getConfigStorage(); config.setHttpProxyHost(configStorageProperties.getHttpProxyHost()); config.setHttpProxyUsername(configStorageProperties.getHttpProxyUsername()); config.setHttpProxyPassword(configStorageProperties.getHttpProxyPassword()); @@ -80,13 +86,12 @@ public class WxMaAutoConfiguration { return config; } - private WxMaDefaultConfigImpl wxMaInMemoryConfigStorage() { - WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); - return config; + private WxMaDefaultConfigImpl wxMaDefaultConfigStorage() { + return new WxMaDefaultConfigImpl(); } - private WxMaDefaultConfigImpl wxMaInJedisConfigStorage() { - WxMaProperties.RedisProperties redisProperties = wxMaProperties.getConfigStorage().getRedis(); + private WxMaDefaultConfigImpl wxMaJedisConfigStorage() { + RedisProperties redisProperties = wxMaProperties.getConfigStorage().getRedis(); JedisPool jedisPool; if (redisProperties != null && StringUtils.isNotEmpty(redisProperties.getHost())) { jedisPool = getJedisPool(); @@ -94,20 +99,18 @@ public class WxMaAutoConfiguration { jedisPool = applicationContext.getBean(JedisPool.class); } WxRedisOps redisOps = new JedisWxRedisOps(jedisPool); - WxMaRedisBetterConfigImpl wxMaRedisConfig = new WxMaRedisBetterConfigImpl(redisOps, wxMaProperties.getConfigStorage().getKeyPrefix()); - return wxMaRedisConfig; + return new WxMaRedisBetterConfigImpl(redisOps, wxMaProperties.getConfigStorage().getKeyPrefix()); } - private WxMaDefaultConfigImpl wxMaInRedisTemplateConfigStorage() { + private WxMaDefaultConfigImpl wxMaRedisTemplateConfigStorage() { StringRedisTemplate redisTemplate = applicationContext.getBean(StringRedisTemplate.class); WxRedisOps redisOps = new RedisTemplateWxRedisOps(redisTemplate); - WxMaRedisBetterConfigImpl wxMaRedisConfig = new WxMaRedisBetterConfigImpl(redisOps, wxMaProperties.getConfigStorage().getKeyPrefix()); - return wxMaRedisConfig; + return new WxMaRedisBetterConfigImpl(redisOps, wxMaProperties.getConfigStorage().getKeyPrefix()); } private JedisPool getJedisPool() { - WxMaProperties.ConfigStorage storage = wxMaProperties.getConfigStorage(); - WxMaProperties.RedisProperties redis = storage.getRedis(); + ConfigStorage storage = wxMaProperties.getConfigStorage(); + RedisProperties redis = storage.getRedis(); JedisPoolConfig config = new JedisPoolConfig(); if (redis.getMaxActive() != null) { diff --git a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/enums/HttpClientType.java b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/enums/HttpClientType.java new file mode 100644 index 000000000..18ca00dd7 --- /dev/null +++ b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/enums/HttpClientType.java @@ -0,0 +1,14 @@ +package com.binarywang.spring.starter.wxjava.miniapp.enums; + +/** + * httpclient类型. + * + * @author Binary Wang + * @date 2020-05-25 + */ +public enum HttpClientType { + /** + * HttpClient. + */ + HttpClient +} diff --git a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/enums/StorageType.java b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/enums/StorageType.java new file mode 100644 index 000000000..9328980bb --- /dev/null +++ b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/enums/StorageType.java @@ -0,0 +1,22 @@ +package com.binarywang.spring.starter.wxjava.miniapp.enums; + +/** + * storage类型. + * + * @author Binary Wang + * @date 2020-05-25 + */ +public enum StorageType { + /** + * 内存. + */ + Memory, + /** + * redis(JedisClient). + */ + Jedis, + /** + * redis(RedisTemplate). + */ + RedisTemplate +} diff --git a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/ConfigStorage.java b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/ConfigStorage.java new file mode 100644 index 000000000..921075d1d --- /dev/null +++ b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/ConfigStorage.java @@ -0,0 +1,65 @@ +package com.binarywang.spring.starter.wxjava.miniapp.properties; + +import com.binarywang.spring.starter.wxjava.miniapp.enums.HttpClientType; +import com.binarywang.spring.starter.wxjava.miniapp.enums.StorageType; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 存储策略. + * + * @author Binary Wang + * @date 2020-05-25 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +public class ConfigStorage implements Serializable { + private static final long serialVersionUID = 4815731027000065434L; + + /** + * 存储类型. + */ + private StorageType type = StorageType.Memory; + + /** + * 指定key前缀. + */ + private String keyPrefix = "wa"; + + /** + * redis连接配置. + */ + private RedisProperties redis; + + /** + * http客户端类型. + */ + private HttpClientType httpClientType = HttpClientType.HttpClient; + + /** + * http代理主机. + */ + private String httpProxyHost; + + /** + * http代理端口. + */ + private Integer httpProxyPort; + + /** + * http代理用户名. + */ + private String httpProxyUsername; + + /** + * http代理密码. + */ + private String httpProxyPassword; + +} diff --git a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/RedisProperties.java b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/RedisProperties.java new file mode 100644 index 000000000..5e630c727 --- /dev/null +++ b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/RedisProperties.java @@ -0,0 +1,52 @@ +package com.binarywang.spring.starter.wxjava.miniapp.properties; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * redis配置. + * + * @author Binary Wang + * @date 2020-05-25 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +public class RedisProperties implements Serializable { + private static final long serialVersionUID = -5924815351660074401L; + + /** + * 主机地址. + */ + private String host; + + /** + * 端口号. + */ + private int port = 6379; + + /** + * 密码. + */ + private String password; + + /** + * 超时. + */ + private int timeout = 2000; + + /** + * 数据库. + */ + private int database = 0; + + private Integer maxActive; + private Integer maxIdle; + private Integer maxWaitMillis; + private Integer minIdle; +} diff --git a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/WxMaProperties.java b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/WxMaProperties.java index 5af54dfe1..0bf267d6c 100644 --- a/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/WxMaProperties.java +++ b/spring-boot-starters/wx-java-miniapp-spring-boot-starter/src/main/java/com/binarywang/spring/starter/wxjava/miniapp/properties/WxMaProperties.java @@ -3,8 +3,6 @@ package com.binarywang.spring.starter.wxjava.miniapp.properties; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; -import java.io.Serializable; - /** * 属性配置类. * @@ -44,106 +42,4 @@ public class WxMaProperties { */ private ConfigStorage configStorage = new ConfigStorage(); - @Data - public static class ConfigStorage implements Serializable { - private static final long serialVersionUID = 4815731027000065434L; - - /** - * 存储类型. - */ - private StorageType type = StorageType.memory; - - /** - * 指定key前缀. - */ - private String keyPrefix = "wa"; - - /** - * redis连接配置. - */ - private RedisProperties redis; - - /** - * http客户端类型. - */ - private HttpClientType httpClientType = HttpClientType.httpclient; - - /** - * http代理主机. - */ - private String httpProxyHost; - - /** - * http代理端口. - */ - private Integer httpProxyPort; - - /** - * http代理用户名. - */ - private String httpProxyUsername; - - /** - * http代理密码. - */ - private String httpProxyPassword; - - } - - public enum StorageType { - /** - * 内存. - */ - memory, - /** - * redis(JedisClient). - */ - jedis, - /** - * redis(RedisTemplate). - */ - redistemplate - } - - public enum HttpClientType { - /** - * HttpClient. - */ - httpclient - } - - @Data - public static class RedisProperties implements Serializable { - private static final long serialVersionUID = -5924815351660074401L; - - /** - * 主机地址. - */ - private String host; - - /** - * 端口号. - */ - private int port = 6379; - - /** - * 密码. - */ - private String password; - - /** - * 超时. - */ - private int timeout = 2000; - - /** - * 数据库. - */ - private int database = 0; - - private Integer maxActive; - private Integer maxIdle; - private Integer maxWaitMillis; - private Integer minIdle; - } }