diff --git a/README.md b/README.md index 983dc44..1bec4d8 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ base:功能封装 #### 最新版本 >yexuejc.springboot.version=2.0.5
->yexuejc.base.version=1.2.4 +>yexuejc.base.version=1.3.9 pom.xml ``` diff --git a/UPDATE.md b/UPDATE.md index 2f8187e..0dbc194 100644 --- a/UPDATE.md +++ b/UPDATE.md @@ -1,6 +1,19 @@ yexuejc-springboot 更新内容 ------------------- +#### version :2.1.0 +**time:2019-7-24 18:30:49**
+**branch:** master
+**关联工程:**
+``` +springboot-base:1.3.9 +spring-boot-starter-parent:2.0.5.RELEASE +``` +**update:**
+1. 所有自动装配增加开关,默认不装配。装配方式请参考[本项目自动装配开关](doc/plugin/AutoConfigure.md) + + +# #### version :2.0.6 **time:2019年4月2日21:08:453**
**branch:** master
diff --git a/doc/MENU.md b/doc/MENU.md index 2009e91..a614dd5 100644 --- a/doc/MENU.md +++ b/doc/MENU.md @@ -1,7 +1,7 @@ 功能目录 ------------------------ -### 第三方集成 +### 第三方集成 -> [第三方集成具体使用](plugin/AutoConfigure.md) # * [redis 集成](REDIS.md) * [Aliyun MNS 消息队列](MNS.md) diff --git a/doc/RSA.md b/doc/RSA.md index 50772b8..305e73e 100644 --- a/doc/RSA.md +++ b/doc/RSA.md @@ -4,19 +4,19 @@ keytool -genkey -alias lgfishing -keyalg RSA -keystore lgfishing2.keystore -keys 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什么? - [Unknown]: heikengdiaoyu.com + [Unknown]: 1107047387@qq.com 您的组织单位名称是什么? - [Unknown]: 深圳金大米网络科技有限公司-老G钓鱼 + [Unknown]: yexuejc 您的组织名称是什么? - [Unknown]: 成都极致思维网络科技有限公司-老G钓鱼 + [Unknown]: 成都极致思维网络科技有限公司 您所在的城市或区域名称是什么? [Unknown]: 成都 您所在的省/市/自治区名称是什么? [Unknown]: 四川 该单位的双字母国家/地区代码是什么? [Unknown]: CN -CN=heikengdiaoyu.com, OU=深圳金大米网络科技有限公司-老G钓鱼, O=成都极致思维网络科技有限公司-老G钓鱼, L=成都, ST=四川, C=CN是否正确? +CN=1107047387@qq.com, OU=yexuejc, O=成都极致思维网络科技有限公司, L=成都, ST=四川, C=CN是否正确? [否]: 是 ``` #生成公钥 -keytool -export -alias lgfishing -keystore lgfishing2.keystore -storepass lgfishing2018 -rfc -file lgfishing2.cer \ No newline at end of file +keytool -export -alias test -keystore test.keystore -storepass test2018 -rfc -file test2018.cer \ No newline at end of file diff --git a/doc/plugin/AutoConfigure.md b/doc/plugin/AutoConfigure.md new file mode 100644 index 0000000..ad3939a --- /dev/null +++ b/doc/plugin/AutoConfigure.md @@ -0,0 +1,95 @@ +本项目自动装配开关 +--------------------- + +## 说明 +本项目从2.1.0开始所有自动装配的功能增加开关控制,默认插件功能关闭. +开启需要在使用项目`application.properties`中增加`yexuejc.autoconfigure.mns.enable=true`类似的配置(每一个插件功能key不一样) + +### 插件功能 +注:使用阿里系的功能请引入阿里基础包 +``` + + + com.aliyun + aliyun-java-sdk-core + true + +``` + +#### 阿里云MNS功能 +> 类:[MnsAutoConfiguration](../../yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MnsAutoConfiguration.java) +>
功能开关:`yexuejc.autoconfigure.mns.enable=true` +>
依赖:`MNSClient.class` +>
pom 引入 +> ``` +> +> +> com.aliyun.mns +> aliyun-sdk-mns +> jar-with-dependencies +> true +> +> ``` +>application.properties 配置 +>``` +> yexuejc.alibaba.mns.access-key-id=自己到阿里云申请access-key +> yexuejc.alibaba.mns.access-key-secret=自己到阿里云申请access-key-secret +> yexuejc.alibaba.mns.endpoint=自己阿里云的endpoint +> yexuejc.alibaba.mns.queue-name-prefix=mns前缀 +>``` + +#### redis 多database 配置 +> 类:[MutiRedisAutoConfiguration](../../yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MutiRedisAutoConfiguration.java) +>
功能开关:`yexuejc.autoconfigure.redis.enable=true` +>
依赖:`JedisConnection.class`, `RedisOperations.class`, `Jedis.class` +>
pom 引入 +> ``` +> +> +> org.springframework.data +> spring-data-redis +> true +> +> +> redis.clients +> jedis +> true +> +> ``` +>application.properties 配置 +>
默认db0k开启 1-15需要使用哪个`yexuejc.redis.dbx=true` +>``` +> yexuejc.redis.db1=true +> spring.redis.jedis.pool.max-active=100 +> spring.redis.jedis.pool.max-idle=10 +> spring.redis.jedis.pool.min-idle=3 +> spring.redis.host=地址 +> spring.redis.password=密码 +> spring.redis.port=端口 +>``` + +#### 阿里 OSS 功能 +> 类:[OssAutoConfiguration](../../yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/OssAutoConfiguration.java) +>
功能开关:`yexuejc.autoconfigure.oss.enable=true` +>
依赖:`OSSClient` +>
pom 引入 +> ``` +> +> +> com.aliyun.oss +> aliyun-sdk-oss +> true +> +> ``` +>application.properties 配置 +>``` +> yexuejc.alibaba.oss.endpoint=自己去阿里申请的endpoint +> yexuejc.alibaba.oss.access-key-secret=自己到阿里云申请access-key-secret +> yexuejc.alibaba.oss.access-key-id=自己到阿里云申请access-key +> yexuejc.alibaba.oss.bucket=自己去阿里申请的bucket +>``` + +#### WebMvc 相关配置 +> 类:[WebAutoConfiguration](../../yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/WebAutoConfiguration.java) +>
功能开关:`yexuejc.autoconfigure.webmvc.enable=true` +> 本类开启后的具体使用说明参见[WebMvc相关配置](WebAutoConfiguration.md) diff --git a/doc/plugin/WebAutoConfiguration.md b/doc/plugin/WebAutoConfiguration.md new file mode 100644 index 0000000..c31fbdf --- /dev/null +++ b/doc/plugin/WebAutoConfiguration.md @@ -0,0 +1,2 @@ +WebMvc相关配置 [WebAutoConfiguration](../../yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/WebAutoConfiguration.java) +------------------------------------ diff --git a/pom.xml b/pom.xml index 6ed5fb9..ebdf109 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.yexuejc.springboot yexuejc-springboot-parent - 2.0.6 + 2.1.0 pom ${project.artifactId} @@ -20,6 +20,11 @@ + + + yexuejc-springboot-base + + 1.3.9 https://nexus.yexuejc.club/repository/ @@ -305,7 +310,4 @@ - - yexuejc-springboot-base - diff --git a/yexuejc-springboot-base/pom.xml b/yexuejc-springboot-base/pom.xml index 25110fa..4f1fa19 100644 --- a/yexuejc-springboot-base/pom.xml +++ b/yexuejc-springboot-base/pom.xml @@ -9,7 +9,7 @@ com.yexuejc.springboot yexuejc-springboot-parent - 2.0.6 + 2.1.0 diff --git a/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MnsAutoConfiguration.java b/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MnsAutoConfiguration.java index 71bd8de..4bf20e2 100644 --- a/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MnsAutoConfiguration.java +++ b/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MnsAutoConfiguration.java @@ -1,13 +1,13 @@ package com.yexuejc.springboot.base.autoconfigure; +import com.aliyun.mns.client.MNSClient; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.aliyun.mns.client.MNSClient; - /** * 阿里云消息服务MNS相关配置 * @@ -20,6 +20,7 @@ import com.aliyun.mns.client.MNSClient; @Configuration @ConditionalOnClass(MNSClient.class) @EnableConfigurationProperties(MnsProperties.class) +@ConditionalOnProperty(name = "yexuejc.autoconfigure.mns.enable", matchIfMissing = false) public class MnsAutoConfiguration { private final MnsProperties properties; diff --git a/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MutiRedisAutoConfiguration.java b/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MutiRedisAutoConfiguration.java index 2580a5b..2fa0b77 100644 --- a/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MutiRedisAutoConfiguration.java +++ b/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/MutiRedisAutoConfiguration.java @@ -37,6 +37,7 @@ import java.net.UnknownHostException; @ConditionalOnClass({JedisConnection.class, RedisOperations.class, Jedis.class}) @EnableConfigurationProperties(RedisProperties.class) @Order(1) +@ConditionalOnProperty(name = "yexuejc.autoconfigure.redis.enable", matchIfMissing = false) public class MutiRedisAutoConfiguration { public static final String BEAN_REDIS_FACTORY0 = "redisConnectionFactory"; public static final String BEAN_REDIS_TEMPLATE0 = "redisTemplate"; diff --git a/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/OssAutoConfiguration.java b/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/OssAutoConfiguration.java index e323204..29cdffe 100644 --- a/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/OssAutoConfiguration.java +++ b/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/OssAutoConfiguration.java @@ -4,6 +4,7 @@ import com.aliyun.oss.ClientConfiguration; import com.aliyun.oss.OSSClient; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -20,6 +21,7 @@ import org.springframework.context.annotation.Configuration; @Configuration @ConditionalOnClass({OSSClient.class}) @EnableConfigurationProperties(OssProperties.class) +@ConditionalOnProperty(name = "yexuejc.autoconfigure.oss.enable", matchIfMissing = false) public class OssAutoConfiguration { private final OssProperties properties; diff --git a/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/WebAutoConfiguration.java b/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/WebAutoConfiguration.java index 2737566..7e6d3ca 100644 --- a/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/WebAutoConfiguration.java +++ b/yexuejc-springboot-base/src/main/java/com/yexuejc/springboot/base/autoconfigure/WebAutoConfiguration.java @@ -17,6 +17,7 @@ import com.yexuejc.springboot.base.filter.ValidationFilterProperties; import com.yexuejc.springboot.base.interceptor.LogInterceptor; import com.yexuejc.springboot.base.util.LogUtil; import com.yexuejc.springboot.base.util.SSLUtil; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -52,6 +53,7 @@ import java.util.List; @Configuration @ConditionalOnWebApplication @EnableConfigurationProperties(ValidationFilterProperties.class) +@ConditionalOnProperty(name = "yexuejc.autoconfigure.webmvc.enable", matchIfMissing = false) public class WebAutoConfiguration extends WebMvcConfigurerAdapter { @@ -61,6 +63,7 @@ public class WebAutoConfiguration extends WebMvcConfigurerAdapter { /******************************************编码部分*****************************************************/ @Bean + @ConditionalOnMissingBean public HttpMessageConverter responseBodyConverter() { StringHttpMessageConverter converter = new StringHttpMessageConverter( Charset.forName("UTF-8")); @@ -68,6 +71,7 @@ public class WebAutoConfiguration extends WebMvcConfigurerAdapter { } @Bean + @ConditionalOnMissingBean public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); builder.serializationInclusion(JsonInclude.Include.NON_NULL); @@ -120,6 +124,7 @@ public class WebAutoConfiguration extends WebMvcConfigurerAdapter { * @return */ @Bean + @ConditionalOnMissingBean public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(ObjectMapper objectMapper) { objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); @@ -138,6 +143,7 @@ public class WebAutoConfiguration extends WebMvcConfigurerAdapter { * @return */ @Bean + @ConditionalOnMissingBean @ConditionalOnProperty(name = "yexuejc.web.validation-filter.enable", matchIfMissing = true) public FilterRegistrationBean validationFilter() { FilterRegistrationBean registration = new FilterRegistrationBean(); @@ -148,11 +154,12 @@ public class WebAutoConfiguration extends WebMvcConfigurerAdapter { return registration; } - @Bean /** * 是否开启HTTPS(SSL)请求证书验证忽略:默认false */ - @ConditionalOnProperty(name = "yexuejc.enable.ssl-ignore", matchIfMissing = false) + @ConditionalOnProperty(name = "yexuejc.ssl-ignore.enable", matchIfMissing = false) + @Bean + @ConditionalOnMissingBean public SSLUtil getSslUtil() { return new SSLUtil(); } @@ -161,6 +168,7 @@ public class WebAutoConfiguration extends WebMvcConfigurerAdapter { * 全局异常处理 */ @ControllerAdvice + @ConditionalOnProperty(name = "yexuejc.global.exception.enable", matchIfMissing = true) static class GlobalExceptionHandler { private static final String ERROR_MSG = "系统错误,请联系管理员"; @@ -185,3 +193,5 @@ public class WebAutoConfiguration extends WebMvcConfigurerAdapter { } } + +