From bad23add8c8063e6edc1a69f71d0de8b617e3817 Mon Sep 17 00:00:00 2001 From: zhangdaiscott Date: Sat, 6 Aug 2022 17:02:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E6=9C=8D=E5=8A=A1=E9=87=8D=E5=A4=A7?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E8=AF=B4=E6=98=8E=EF=BC=88=E6=9A=82=E6=97=B6?= =?UTF-8?q?=E5=8F=AA=E5=8D=87=E7=BA=A7=E5=90=8E=E5=8F=B03.4.0=EF=BC=89=20-?= =?UTF-8?q?=E5=8D=87=E7=BA=A7Spring=20Cloud=20Alibaba=202021.0.1.0?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8=20spring.config.import=20=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E5=BC=95=E5=85=A5nacos=E9=85=8D=E7=BD=AE=20-=E6=8B=86?= =?UTF-8?q?=E5=88=86jeecg-boot-starter=E5=87=BA=E6=9D=A5=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=8B=AC=E7=AB=8B=E9=A1=B9=E7=9B=AE=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +- jeecg-boot/README.md | 2 +- jeecg-boot/db/tables_nacos.sql | 69 +- .../{ => 其他类型库}/jeecgboot-oracle11g.dmp | Bin .../{ => 其他类型库}/jeecgboot-oracle11g.sql | 0 .../jeecgboot-sqlserver2019.sql | 0 jeecg-boot/docker-compose-server.yml | 51 -- .../jeecg-system-cloud-api/pom.xml | 2 +- .../jeecg-system-local-api/pom.xml | 2 +- .../jeecg-boot-base-api/pom.xml | 2 +- .../jeecg-boot-base-core/pom.xml | 24 +- .../jeecg/common/constant/CommonConstant.java | 13 +- .../jeecg/common/util/PathMatcherUtil.java | 96 --- .../org/jeecg/config/JeecgBaseConfig.java | 12 + .../org/jeecg/config/WebMvcConfiguration.java | 12 +- .../config/mybatis/MybatisPlusSaasConfig.java | 1 + .../jeecg/config/mybatis/TenantContext.java | 50 +- .../org/jeecg/config/shiro/ShiroRealm.java | 2 +- .../jeecg/config/shiro/filters/JwtFilter.java | 2 +- .../interceptor/SignAuthConfiguration.java | 39 +- .../jeecg-boot-base-tools/pom.xml | 45 -- .../common/annotation/RabbitComponent.java | 23 - .../java/org/jeecg/common/base/BaseMap.java | 144 ---- .../org/jeecg/common/config/CommonConfig.java | 27 - .../mqtoken/TransmitUserTokenFilter.java | 46 -- .../config/mqtoken/UserTokenContext.java | 31 - .../jeecg/common/constant/CacheConstant.java | 103 --- .../common/constant/GlobalConstants.java | 23 - .../common/enums/SentinelErrorInfoEnum.java | 108 --- .../common/exception/JeecgCloudException.java | 15 - .../redis/client/JeecgRedisClient.java | 34 - .../modules/redis/config/RedisConfig.java | 141 ---- .../redis/listener/JeecgRedisListener.java | 18 - .../modules/redis/receiver/RedisReceiver.java | 33 - .../redis/writer/JeecgRedisCacheWriter.java | 250 ------- .../java/org/jeecg/common/util/RedisUtil.java | 613 ------------------ .../common/util/SpringContextHolder.java | 81 --- jeecg-boot/jeecg-boot-base/pom.xml | 3 +- jeecg-boot/jeecg-boot-module-demo/pom.xml | 28 +- .../org/jeecg/JeecgDemoCloudApplication.java | 35 - .../src/main/resources/application.yml | 5 - .../jeecg-boot-module-system/Dockerfile | 4 +- jeecg-boot/jeecg-boot-module-system/pom.xml | 49 +- .../org/jeecg/JeecgSystemApplication.java | 8 +- .../system/controller/LoginController.java | 13 + .../system/mapper/SysPermissionMapper.java | 8 + .../system/service/ISysPermissionService.java | 6 +- .../impl/SysPermissionServiceImpl.java | 6 + .../src/main/resources/application-dev.yml | 2 + .../src/main/resources/application-prod.yml | 2 + .../src/main/resources/application-test.yml | 2 + .../src/main/resources/banner.txt | 2 +- .../nacos/jeecg-dev.yaml | 212 ------ .../jeecg-boot-starter-cloud/pom.xml | 59 -- .../java/org/jeecg/config/FeignConfig.java | 195 ------ .../starter/cloud/config/GwCorsFilter.java | 31 - .../cloud/config/PersonBeanConfiguration.java | 24 - .../cloud/feign/IJeecgFeignService.java | 6 - .../cloud/feign/impl/JeecgFeignService.java | 60 -- .../CustomSentinelExceptionHandler.java | 55 -- .../DefaultRequestOriginParser.java | 31 - .../src/main/resources/bootstrap.yml | 59 -- .../jeecg-boot-starter-job/pom.xml | 21 - .../xxl/job/core/executor/XxlJobExecutor.java | 228 ------- .../starter/job/annotation/EnableXxlJob.java | 18 - .../job/config/XxlJobConfiguration.java | 48 -- .../starter/job/prop/XxlJobProperties.java | 35 - .../main/resources/META-INF/spring.factories | 2 - .../jeecg-boot-starter-lock/pom.xml | 41 -- .../boot/starter/lock/annotation/JLock.java | 57 -- .../boot/starter/lock/annotation/JRepeat.java | 36 - .../starter/lock/annotation/LockConstant.java | 72 -- .../boot/starter/lock/aspect/BaseAspect.java | 67 -- .../lock/aspect/DistributedLockHandler.java | 167 ----- .../lock/aspect/RepeatSubmitAspect.java | 81 --- .../lock/client/RedissonLockClient.java | 126 ---- .../lock/config/RedissonConfiguration.java | 36 - .../starter/lock/core/RedissonManager.java | 100 --- .../core/strategy/RedissonConfigStrategy.java | 21 - .../ClusterRedissonConfigStrategyImpl.java | 43 -- ...MasterslaveRedissonConfigStrategyImpl.java | 54 -- .../SentinelRedissonConfigStrategyImpl.java | 47 -- .../StandaloneRedissonConfigStrategyImpl.java | 40 -- .../starter/lock/enums/GlobalConstant.java | 17 - .../boot/starter/lock/enums/LockModel.java | 22 - .../lock/enums/RedisConnectionType.java | 39 -- .../starter/lock/prop/RedissonProperties.java | 39 -- .../main/resources/META-INF/spring.factories | 4 - .../boot/starter/lock/test/LockService.java | 59 -- .../boot/starter/lock/test/LockTest.java | 67 -- .../lock/test/LockTestApplication.java | 15 - .../boot/starter/lock/test/TestUser.java | 9 - .../src/test/resources/application.yml | 19 - .../jeecg-boot-starter-rabbitmq/pom.xml | 21 - .../rabbitmq/client/RabbitMqClient.java | 359 ---------- .../rabbitmq/config/RabbitMqConfig.java | 67 -- .../rabbitmq/core/BaseRabbiMqHandler.java | 40 -- .../rabbitmq/core/MapMessageConverter.java | 39 -- .../rabbitmq/event/BaseApplicationEvent.java | 28 - .../boot/starter/rabbitmq/event/EventObj.java | 21 - .../rabbitmq/event/JeecgBusEventHandler.java | 8 - .../event/JeecgRemoteApplicationEvent.java | 29 - .../exchange/DelayExchangeBuilder.java | 33 - .../rabbitmq/listenter/MqListener.java | 10 - .../jeecg-boot-starter-seata/pom.xml | 27 - .../jeecg-boot-starter-shardingsphere/pom.xml | 28 - .../config/DataSourceConfiguration.java | 78 --- .../src/main/resources/application.yml | 3 - jeecg-boot/jeecg-boot-starter/pom.xml | 57 -- .../docker-compose-base.yml | 20 +- .../jeecg-cloud-module/docker-compose.yml | 8 +- .../jeecg-cloud-gateway/Dockerfile | 4 +- .../jeecg-cloud-gateway/README.md | 8 +- .../jeecg-cloud-gateway/pom.xml | 2 +- .../org/jeecg/JeecgGatewayApplication.java | 4 +- .../jeecg/config/GatewayRoutersConfig.java | 6 +- .../org/jeecg/loader/DynamicRouteLoader.java | 12 +- .../src/main/resources/application.yml | 57 +- .../jeecg-cloud-monitor/README.md | 2 + .../jeecg-cloud-monitor/pom.xml | 2 +- .../jeecg-cloud-nacos/Dockerfile | 4 +- .../jeecg-cloud-nacos/README.md | 11 + .../docs/config/jeecg-dev.yaml | 146 +++++ .../docs/config/jeecg-gateway-dev.yaml | 13 + .../docs/config}/jeecg-gateway-router.json | 16 +- .../jeecg-cloud-nacos/docs/config}/jeecg.yaml | 37 +- .../jeecg-cloud-nacos/pom.xml | 2 +- .../alibaba/nacos/JeecgNacosApplication.java | 9 +- .../jeecg-cloud-sentinel/Dockerfile | 4 +- .../jeecg-cloud-sentinel/README.md | 2 +- .../jeecg-cloud-sentinel/pom.xml | 21 +- .../dashboard/rule/nacos/SentinelConfig.java | 9 +- .../src/main/resources/application.yml | 2 - .../src/main/resources/application-dev.yml | 0 .../src/main/resources/application.yml | 57 -- .../jeecg-cloud-test-more/pom.xml | 2 +- .../jeecg-cloud-test-rabbitmq/pom.xml | 2 +- .../jeecg-cloud-test-seata-account/pom.xml | 2 +- .../jeecg-cloud-test-seata-order/pom.xml | 2 +- .../jeecg-cloud-test-seata-product/pom.xml | 2 +- .../jeecg-cloud-test-seata/pom.xml | 2 +- .../jeecg-cloud-test-shardingsphere/pom.xml | 2 +- .../jeecg-cloud-test/pom.xml | 2 +- .../jeecg-cloud-xxljob/Dockerfile | 4 +- .../jeecg-cloud-xxljob/README.md | 4 +- .../jeecg-cloud-xxljob/pom.xml | 2 +- .../src/main/resources/application.yml | 4 +- .../jeecg-demo-cloud-start}/Dockerfile | 8 +- .../jeecg-demo-cloud-start/pom.xml | 41 ++ .../main/java/JeecgDemoCloudApplication.java | 35 + .../src/main/resources/application.yml | 16 + .../Dockerfile | 8 +- .../pom.xml | 14 +- .../jeecg/JeecgSystemCloudApplication.java | 0 .../src/main/resources/application.yml | 16 + .../src/main/resources/logback-spring.xml | 0 jeecg-boot/jeecg-cloud-module/pom.xml | 10 +- jeecg-boot/pom.xml | 130 ++-- 158 files changed, 625 insertions(+), 5645 deletions(-) rename jeecg-boot/db/{ => 其他类型库}/jeecgboot-oracle11g.dmp (100%) rename jeecg-boot/db/{ => 其他类型库}/jeecgboot-oracle11g.sql (100%) rename jeecg-boot/db/{ => 其他类型库}/jeecgboot-sqlserver2019.sql (100%) delete mode 100644 jeecg-boot/docker-compose-server.yml delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/PathMatcherUtil.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/pom.xml delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/annotation/RabbitComponent.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/base/BaseMap.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/CommonConfig.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/TransmitUserTokenFilter.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/UserTokenContext.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/constant/CacheConstant.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/constant/GlobalConstants.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/enums/SentinelErrorInfoEnum.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/exception/JeecgCloudException.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/client/JeecgRedisClient.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/config/RedisConfig.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/listener/JeecgRedisListener.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/receiver/RedisReceiver.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/writer/JeecgRedisCacheWriter.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/util/RedisUtil.java delete mode 100644 jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/util/SpringContextHolder.java delete mode 100644 jeecg-boot/jeecg-boot-module-demo/src/main/java/org/jeecg/JeecgDemoCloudApplication.java delete mode 100644 jeecg-boot/jeecg-boot-module-demo/src/main/resources/application.yml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg-dev.yaml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/pom.xml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/config/FeignConfig.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/config/GwCorsFilter.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/config/PersonBeanConfiguration.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/feign/IJeecgFeignService.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/feign/impl/JeecgFeignService.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/handler/CustomSentinelExceptionHandler.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/resources/bootstrap.yml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/pom.xml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/annotation/EnableXxlJob.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/config/XxlJobConfiguration.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/prop/XxlJobProperties.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/resources/META-INF/spring.factories delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/pom.xml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/JLock.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/JRepeat.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/LockConstant.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/BaseAspect.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/DistributedLockHandler.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/RepeatSubmitAspect.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/client/RedissonLockClient.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/config/RedissonConfiguration.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/RedissonManager.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/RedissonConfigStrategy.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/ClusterRedissonConfigStrategyImpl.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/MasterslaveRedissonConfigStrategyImpl.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/SentinelRedissonConfigStrategyImpl.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/StandaloneRedissonConfigStrategyImpl.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/GlobalConstant.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/LockModel.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/RedisConnectionType.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/prop/RedissonProperties.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/resources/META-INF/spring.factories delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockService.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockTest.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockTestApplication.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/TestUser.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/resources/application.yml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/pom.xml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/client/RabbitMqClient.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/config/RabbitMqConfig.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/BaseRabbiMqHandler.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/MapMessageConverter.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/BaseApplicationEvent.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/EventObj.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/JeecgBusEventHandler.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/JeecgRemoteApplicationEvent.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/exchange/DelayExchangeBuilder.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/listenter/MqListener.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-seata/pom.xml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/pom.xml delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/src/main/java/org/jeecg/boot/shardingsphere/config/DataSourceConfiguration.java delete mode 100644 jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/src/main/resources/application.yml delete mode 100644 jeecg-boot/jeecg-boot-starter/pom.xml create mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-cloud-monitor/README.md create mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/README.md create mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-dev.yaml create mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-gateway-dev.yaml rename jeecg-boot/{jeecg-boot-starter/jeecg-boot-starter-cloud/nacos => jeecg-cloud-module/jeecg-cloud-nacos/docs/config}/jeecg-gateway-router.json (68%) rename jeecg-boot/{jeecg-boot-starter/jeecg-boot-starter-cloud/nacos => jeecg-cloud-module/jeecg-cloud-nacos/docs/config}/jeecg.yaml (64%) delete mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/resources/application-dev.yml delete mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/resources/application.yml rename jeecg-boot/{jeecg-boot-module-demo => jeecg-cloud-module/jeecg-demo-cloud-start}/Dockerfile (57%) create mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/pom.xml create mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/src/main/java/JeecgDemoCloudApplication.java create mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/src/main/resources/application.yml rename jeecg-boot/jeecg-cloud-module/{jeecg-cloud-system-start => jeecg-system-cloud-start}/Dockerfile (56%) rename jeecg-boot/jeecg-cloud-module/{jeecg-cloud-system-start => jeecg-system-cloud-start}/pom.xml (90%) rename jeecg-boot/jeecg-cloud-module/{jeecg-cloud-system-start => jeecg-system-cloud-start}/src/main/java/org/jeecg/JeecgSystemCloudApplication.java (100%) create mode 100644 jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/application.yml rename jeecg-boot/jeecg-cloud-module/{jeecg-cloud-system-start => jeecg-system-cloud-start}/src/main/resources/logback-spring.xml (100%) diff --git a/README.md b/README.md index 55c02e32..648de6f2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,12 @@ JEECG BOOT 低代码开发平台(前后端分离版本) =============== -当前最新版本: 3.3.0(发布日期:2022-07-25) +当前最新版本: 3.4.0(发布日期:2022-08-06) + + +> **重大升级说明** +> - 升级[Spring Cloud Alibaba 2021.0.1.0](https://github.com/alibaba/spring-cloud-alibaba/blob/2021.x/spring-cloud-alibaba-docs/src/main/asciidoc-zh/sca-upgrade-guide.adoc),使用 spring.config.import 方式引入nacos配置 +> - 拆分jeecg-boot-starter出来,使用独立项目维护 [jeecg-boot-starter项目新地址](https://gitee.com/jeecg/jeecg-boot-starter) [![AUR](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://github.com/zhangdaiscott/jeecg-boot/blob/master/LICENSE) diff --git a/jeecg-boot/README.md b/jeecg-boot/README.md index bf0b9b8d..9ec6f71d 100644 --- a/jeecg-boot/README.md +++ b/jeecg-boot/README.md @@ -1,7 +1,7 @@ Jeecg-Boot 低代码开发平台 =============== -当前最新版本: 3.3.0(发布日期:20220725) +当前最新版本: 3.4.0(发布日期:20220808) ## 后端技术架构 diff --git a/jeecg-boot/db/tables_nacos.sql b/jeecg-boot/db/tables_nacos.sql index fa1b1db0..79172a78 100644 --- a/jeecg-boot/db/tables_nacos.sql +++ b/jeecg-boot/db/tables_nacos.sql @@ -1,6 +1,5 @@ CREATE database if NOT EXISTS `nacos` default character set utf8mb4 collate utf8mb4_general_ci; use `nacos`; - /* Navicat Premium Data Transfer @@ -14,7 +13,7 @@ use `nacos`; Target Server Version : 50738 File Encoding : 65001 - Date: 20/07/2022 00:01:21 + Date: 06/08/2022 15:12:35 */ SET NAMES utf8mb4; @@ -43,18 +42,15 @@ CREATE TABLE `config_info` ( `c_schema` text CHARACTER SET utf8 COLLATE utf8_bin NULL, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `uk_configinfo_datagrouptenant`(`data_id`, `group_id`, `tenant_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of config_info -- ---------------------------- -INSERT INTO `config_info` VALUES (1, 'jeecg-dev.yaml', 'DEFAULT_GROUP', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\n # 连接池的配置信息\n # 初始化大小,最小,最大\n initial-size: 5\n min-idle: 5\n maxActive: 20\n # 配置获取连接等待超时的时间\n maxWait: 60000\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\n timeBetweenEvictionRunsMillis: 60000\n # 配置一个连接在池中最小生存的时间,单位是毫秒\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n # 打开PSCache,并且指定每个连接上PSCache的大小\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\n filters: stat,wall,slf4j\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n # 多数据源配置\n #multi-datasource1:\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n #username: root\n #password: root\n #driver-class-name: com.mysql.cj.jdbc.Driver\n #redis 配置\n redis:\n database: 0\n host: jeecg-boot-redis\n lettuce:\n pool:\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\n shutdown-timeout: 100ms\n password:\n port: 6379\n #rabbitmq配置\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n #消费者的最小数量\n concurrency: 1\n #消费者的最大数量\n max-concurrency: 1\n #是否支持重试\n retry:\n enabled: true\n#jeecg专用配置\nminidao :\n base-package: org.jeecg.modules.jmreport.*\njeecg :\n # 签名密钥串(前后端要一致,正式发布请自行修改)\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n # 本地:local\\Minio:minio\\阿里云:alioss\n uploadType: local\n #前端访问地址\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path :\n #文件上传根目录 设置\n upload: /opt/upFiles\n #webapp文件路径\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n #阿里云oss存储配置\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n # ElasticSearch 6设置\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n # 表单设计器配置\n desform:\n # 主题颜色(仅支持 16进制颜色代码)\n theme-color: \"#1890ff\"\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\n upload-type: system\n map:\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\n baidu: ??\n # 在线预览文件服务器地址配置\n file-view-domain: 127.0.0.1:8012\n # minio文件上传\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n #大屏报表参数设置\n jmreport:\n mode: dev\n #是否需要校验token\n is_verify_token: false\n #必须校验方法\n verify_methods: remove,delete,save,add,update\n #Wps在线文档\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n #xxl-job配置\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n #自定义路由配置 yml nacos database\n route:\n config:\n data-id: jeecg-gateway-router\n group: DEFAULT_GROUP\n data-type: database\n #分布式锁配置\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\n#Mybatis输出sql日志\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\n#cas单点登录\ncas:\n prefixUrl: http://localhost:8888/cas\n#swagger\nknife4j:\n #开启生产环境屏蔽\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\n\n#第三方登录\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\n#第三方APP对接\nthird-app:\n enabled: false\n type:\n #企业微信\n WECHAT_ENTERPRISE:\n enabled: false\n #CORP_ID\n client-id: ??\n #SECRET\n client-secret: ??\n agent-id: ??\n #自建应用秘钥(新版企微需要配置)\n # agent-app-secret: ??\n #钉钉\n DINGTALK:\n enabled: false\n # appKey\n client-id: ??\n # appSecret\n client-secret: ??\n agent-id: ??', 'd36643813fa70ad10d5ca6aa7c44cf83', '2021-03-03 13:01:11', '2022-07-19 16:00:23', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', ''); -INSERT INTO `config_info` VALUES (2, 'jeecg.yaml', 'DEFAULT_GROUP', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\" #暴露所有节点\n health:\n sensitive: true #关闭过滤敏感信息\n endpoint:\n health:\n show-details: ALWAYS #显示详细信息\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n ## quartz定时任务,采用数据库方式\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n #设置自动启动,默认为 true\n auto-startup: false\n #延迟1秒启动定时任务\n startup-delay: 1s\n #启动时更新己存在的Job\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 12000\n clusterCheckinInterval: 15000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n #json 时间戳统一转换\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n #启用作业执行器\n async-executor-activate: false\n #启用异步执行器\n job-executor-activate: false\n jpa:\n open-in-view: false\n #配置freemarker\n freemarker:\n # 设置模板后缀名\n suffix: .ftl\n # 设置文档类型\n content-type: text/html\n # 设置页面编码格式\n charset: UTF-8\n # 设置页面缓存\n cache: false\n prefer-file-system-access: false\n # 设置ftl文件路径\n template-loader-path:\n - classpath:/templates\n # 设置静态文件路径,js,css等\n mvc:\n static-path-pattern: /**\n #Spring Boot 2.6+后需手动指定为ant-path-matcher\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\n#mybatis plus 设置\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n # 关闭MP3.0自带的banner\n banner: false\n db-config:\n #主键类型 0:\"数据库ID自增\",1:\"该类型为未设置主键类型\", 2:\"用户输入ID\",3:\"全局唯一ID (数字类型唯一ID)\", 4:\"全局唯一ID UUID\",5:\"字符串全局唯一ID (idWorker 的字符串表示)\";\n id-type: ASSIGN_ID\n # 默认数据库表下划线命名\n table-underline: true\n configuration:\n # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用\n #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 返回类型为Map,显示null对应的字段\n call-setters-on-nulls: true', '1a2bd8f423b3e6d167b52e07d52a9645', '2021-03-03 13:01:42', '2022-05-31 02:30:23', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', ''); +INSERT INTO `config_info` VALUES (1, 'jeecg-dev.yaml', 'DEFAULT_GROUP', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', 'edb0e79d570edf341755caf3853f11e4', '2021-03-03 13:01:11', '2022-08-06 07:10:17', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', ''); +INSERT INTO `config_info` VALUES (2, 'jeecg.yaml', 'DEFAULT_GROUP', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\"\n health:\n sensitive: true\n endpoint:\n health:\n show-details: ALWAYS\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n auto-startup: false\n startup-delay: 1s\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 12000\n clusterCheckinInterval: 15000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n async-executor-activate: false\n job-executor-activate: false\n jpa:\n open-in-view: false\n freemarker:\n suffix: .ftl\n content-type: text/html\n charset: UTF-8\n cache: false\n prefer-file-system-access: false\n template-loader-path:\n - classpath:/templates\n mvc:\n static-path-pattern: /**\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: ASSIGN_ID\n table-underline: true\n configuration:\n call-setters-on-nulls: true', '2117a96ba08e8fd0f66825e87416af27', '2021-03-03 13:01:42', '2022-08-05 13:12:21', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', ''); INSERT INTO `config_info` VALUES (3, 'jeecg-gateway-router.json', 'DEFAULT_GROUP', '[{\n \"id\": \"jeecg-system\",\n \"order\": 0,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/sys/**\",\n \"_genkey_1\": \"/jmreport/**\",\n \"_genkey_3\": \"/online/**\",\n \"_genkey_4\": \"/generic/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo\",\n \"order\": 1,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/mock/**\",\n \"_genkey_1\": \"/test/**\",\n \"_genkey_2\": \"/bigscreen/template1/**\",\n \"_genkey_3\": \"/bigscreen/template2/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb://jeecg-demo\"\n}, {\n \"id\": \"jeecg-system-websocket\",\n \"order\": 2,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/websocket/**\",\n \"_genkey_1\": \"/newsWebsocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-system\"\n}, {\n \"id\": \"jeecg-demo-websocket\",\n \"order\": 3,\n \"predicates\": [{\n \"name\": \"Path\",\n \"args\": {\n \"_genkey_0\": \"/vxeSocket/**\"\n }\n }],\n \"filters\": [],\n \"uri\": \"lb:ws://jeecg-demo\"\n}]', 'be6548051d99309d7fa5ac4398404201', '2021-03-03 13:02:14', '2022-02-23 11:49:01', NULL, '0:0:0:0:0:0:0:1', '', '', '', '', '', 'json', ''); -INSERT INTO `config_info` VALUES (6, 'jeecg-test.yaml', 'DEFAULT_GROUP', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\n # 连接池的配置信息\n # 初始化大小,最小,最大\n initial-size: 5\n min-idle: 5\n maxActive: 20\n # 配置获取连接等待超时的时间\n maxWait: 60000\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\n timeBetweenEvictionRunsMillis: 60000\n # 配置一个连接在池中最小生存的时间,单位是毫秒\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n # 打开PSCache,并且指定每个连接上PSCache的大小\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\n filters: stat,wall,slf4j\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n # 多数据源配置\n #multi-datasource1:\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n #username: root\n #password: root\n #driver-class-name: com.mysql.cj.jdbc.Driver\n #redis 配置\n redis:\n database: 0\n host: jeecg-boot-redis\n lettuce:\n pool:\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\n shutdown-timeout: 100ms\n password:\n port: 6379\n #rabbitmq配置\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n #消费者的最小数量\n concurrency: 1\n #消费者的最大数量\n max-concurrency: 1\n #是否支持重试\n retry:\n enabled: true\n#jeecg专用配置\nminidao :\n base-package: org.jeecg.modules.jmreport.*\njeecg :\n # 签名密钥串(前后端要一致,正式发布请自行修改)\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n # 本地:local\\Minio:minio\\阿里云:alioss\n uploadType: local\n # 前端访问地址\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path :\n #文件上传根目录 设置\n upload: /opt/upFiles\n #webapp文件路径\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n #阿里云oss存储配置\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n # ElasticSearch 6设置\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n # 表单设计器配置\n desform:\n # 主题颜色(仅支持 16进制颜色代码)\n theme-color: \"#1890ff\"\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\n upload-type: system\n map:\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\n baidu: ??\n # 在线预览文件服务器地址配置\n file-view-domain: 127.0.0.1:8012\n # minio文件上传\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n #大屏报表参数设置\n jmreport:\n mode: dev\n #是否需要校验token\n is_verify_token: false\n #必须校验方法\n verify_methods: remove,delete,save,add,update\n #Wps在线文档\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n #xxl-job配置\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n #自定义路由配置 yml nacos database\n route:\n config:\n data-id: jeecg-gateway-router\n group: DEFAULT_GROUP\n data-type: database\n #分布式锁配置\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\n#Mybatis输出sql日志\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\n#cas单点登录\ncas:\n prefixUrl: http://localhost:8888/cas\n#swagger\nknife4j:\n #开启生产环境屏蔽\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\n\n#第三方登录\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\n#第三方APP对接\nthird-app:\n enabled: false\n type:\n #企业微信\n WECHAT_ENTERPRISE:\n enabled: false\n #CORP_ID\n client-id: ??\n #SECRET\n client-secret: ??\n agent-id: ??\n #自建应用秘钥(新版企微需要配置)\n # agent-app-secret: ??\n #钉钉\n DINGTALK:\n enabled: false\n # appKey\n client-id: ??\n # appSecret\n client-secret: ??\n agent-id: ??', '46baafc4b1930b7d523c35223b032316', '2022-04-12 13:32:45', '2022-07-19 16:00:39', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', ''); -INSERT INTO `config_info` VALUES (7, 'jeecg-prod.yaml', 'DEFAULT_GROUP', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\n # 连接池的配置信息\n # 初始化大小,最小,最大\n initial-size: 5\n min-idle: 5\n maxActive: 20\n # 配置获取连接等待超时的时间\n maxWait: 60000\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\n timeBetweenEvictionRunsMillis: 60000\n # 配置一个连接在池中最小生存的时间,单位是毫秒\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n # 打开PSCache,并且指定每个连接上PSCache的大小\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\n filters: stat,wall,slf4j\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n # 多数据源配置\n #multi-datasource1:\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n #username: root\n #password: root\n #driver-class-name: com.mysql.cj.jdbc.Driver\n #redis 配置\n redis:\n database: 0\n host: jeecg-boot-redis\n lettuce:\n pool:\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\n shutdown-timeout: 100ms\n password:\n port: 6379\n #rabbitmq配置\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n #消费者的最小数量\n concurrency: 1\n #消费者的最大数量\n max-concurrency: 1\n #是否支持重试\n retry:\n enabled: true\n#jeecg专用配置\nminidao :\n base-package: org.jeecg.modules.jmreport.*\njeecg :\n # 签名密钥串(前后端要一致,正式发布请自行修改)\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n # 本地:local\\Minio:minio\\阿里云:alioss\n uploadType: local\n # 前端访问地址\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path :\n #文件上传根目录 设置\n upload: /opt/upFiles\n #webapp文件路径\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n #阿里云oss存储配置\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n # ElasticSearch 6设置\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n # 表单设计器配置\n desform:\n # 主题颜色(仅支持 16进制颜色代码)\n theme-color: \"#1890ff\"\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\n upload-type: system\n map:\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\n baidu: ??\n # 在线预览文件服务器地址配置\n file-view-domain: 127.0.0.1:8012\n # minio文件上传\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n #大屏报表参数设置\n jmreport:\n mode: dev\n #是否需要校验token\n is_verify_token: false\n #必须校验方法\n verify_methods: remove,delete,save,add,update\n #Wps在线文档\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n #xxl-job配置\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n #自定义路由配置 yml nacos database\n route:\n config:\n data-id: jeecg-gateway-router\n group: DEFAULT_GROUP\n data-type: database\n #分布式锁配置\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\n#Mybatis输出sql日志\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\n#cas单点登录\ncas:\n prefixUrl: http://localhost:8888/cas\n#swagger\nknife4j:\n #开启生产环境屏蔽\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\n\n#第三方登录\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\n#第三方APP对接\nthird-app:\n enabled: false\n type:\n #企业微信\n WECHAT_ENTERPRISE:\n enabled: false\n #CORP_ID\n client-id: ??\n #SECRET\n client-secret: ??\n agent-id: ??\n #自建应用秘钥(新版企微需要配置)\n # agent-app-secret: ??\n #钉钉\n DINGTALK:\n enabled: false\n # appKey\n client-id: ??\n # appSecret\n client-secret: ??\n agent-id: ??', '46baafc4b1930b7d523c35223b032316', '2022-04-12 13:33:15', '2022-07-19 16:01:00', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', ''); -INSERT INTO `config_info` VALUES (11, 'jeecg-sharding.yaml', 'DEFAULT_GROUP', '# 单库分表配置\nspring:\n shardingsphere:\n props:\n sql-show: true\n datasource:\n #添加分库数据源\n ds0:\n driverClassName: com.mysql.cj.jdbc.Driver\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n username: root\n password: root\n type: com.alibaba.druid.pool.DruidDataSource\n names: ds0\n # 规则配置\n rules:\n sharding:\n # 配置绑定表,每一行为一组\n binding-tables: sys_log\n # 分布式序列算法配置\n key-generators:\n snowflake:\n type: SNOWFLAKE\n props:\n worker-id: 123\n # 分片算法配置\n sharding-algorithms:\n table-classbased:\n props:\n strategy: standard\n # 自定义标准分配算法\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\n type: CLASS_BASED\n tables:\n # 逻辑表名称\n sys_log:\n #配置具体表的数据节点\n actual-data-nodes: ds0.sys_log$->{0..1}\n # 分表策略\n table-strategy:\n standard:\n # 分片算法名称\n sharding-algorithm-name: table-classbased\n # 分片列名称(对应数据库字段)\n sharding-column: log_type', '0e6f4541eb8581313bb568bd947ebc3d', '2022-04-13 03:12:28', '2022-04-13 06:11:31', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', ''); -INSERT INTO `config_info` VALUES (15, 'jeecg-sharding2.yaml', 'DEFAULT_GROUP', '# 双库分表配置\r\nspring:\r\n shardingsphere:\r\n props:\r\n sql-show: true\r\n datasource:\r\n ds0:\r\n driverClassName: com.mysql.cj.jdbc.Driver\r\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\r\n type: com.alibaba.druid.pool.DruidDataSource\r\n username: root\r\n password: root\r\n ds1:\r\n driverClassName: com.mysql.cj.jdbc.Driver\r\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot2?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\r\n type: com.alibaba.druid.pool.DruidDataSource\r\n username: root\r\n password: root\r\n names: ds0,ds1\r\n # 规则配置\r\n rules:\r\n replica-query:\r\n # 负载均衡算法\r\n load-balancers:\r\n round-robin:\r\n type: ROUND_ROBIN\r\n props:\r\n default: 0\r\n data-sources:\r\n prds:\r\n primary-data-source-name: ds0\r\n replica-data-source-names: ds1\r\n load-balancer-name: round_robin\r\n sharding:\r\n # 配置绑定表,每一行为一组,绑定表会提高查询效率\r\n binding-tables:\r\n - sys_log\r\n # 分布式序列算法配置\r\n key-generators:\r\n snowflake:\r\n type: SNOWFLAKE\r\n props:\r\n worker-id: 123\r\n # 分片算法配置\r\n sharding-algorithms:\r\n table-classbased:\r\n props:\r\n strategy: standard\r\n algorithmClassName: org.jeecg.modules.test.sharding.algorithm.StandardModTableShardAlgorithm\r\n type: CLASS_BASED\r\n # 通过operate_type取模的方式确定数据落在哪个库\r\n database-inline:\r\n type: INLINE\r\n props:\r\n algorithm-expression: ds$->{operate_type % 2}\r\n tables:\r\n # 逻辑表名称\r\n sys_log:\r\n #配置具体表的数据节点\r\n actual-data-nodes: ds$->{0..1}.sys_log$->{0..1}\r\n # 分库策略\r\n database-strategy:\r\n standard:\r\n sharding-column: operate_type\r\n sharding-algorithm-name: database-inline\r\n # 分表策略\r\n table-strategy:\r\n standard:\r\n # 分片算法名称\r\n sharding-algorithm-name: table-classbased\r\n # 分片列名称\r\n sharding-column: log_type', '257969ade38b413213f56267ab338bb6', '2022-04-13 06:11:11', '2022-04-13 06:11:11', NULL, '0:0:0:0:0:0:0:1', '', '', NULL, NULL, NULL, 'yaml', NULL); +INSERT INTO `config_info` VALUES (20, 'jeecg-gateway-dev.yaml', 'DEFAULT_GROUP', 'jeecg:\n route:\n config:\n #type:database nacos yml\n data-type: database\n group: DEFAULT_GROUP\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', '0fc619d2d5e304f18bc4ea8be99f68a4', '2022-08-04 16:36:11', '2022-08-06 07:11:34', 'nacos', '0:0:0:0:0:0:0:1', '', '', '', '', '', 'yaml', ''); -- ---------------------------- -- Table structure for config_info_aggr @@ -71,7 +67,7 @@ CREATE TABLE `config_info_aggr` ( `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租户字段', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `uk_configinfoaggr_datagrouptenantdatum`(`data_id`, `group_id`, `tenant_id`, `datum_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '增加租户字段' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '增加租户字段' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of config_info_aggr @@ -96,7 +92,7 @@ CREATE TABLE `config_info_beta` ( `tenant_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '' COMMENT '租户字段', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `uk_configinfobeta_datagrouptenant`(`data_id`, `group_id`, `tenant_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_beta' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_beta' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of config_info_beta @@ -121,7 +117,7 @@ CREATE TABLE `config_info_tag` ( `src_ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT 'source ip', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `uk_configinfotag_datagrouptenanttag`(`data_id`, `group_id`, `tenant_id`, `tag_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_tag' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_info_tag' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of config_info_tag @@ -142,7 +138,7 @@ CREATE TABLE `config_tags_relation` ( PRIMARY KEY (`nid`) USING BTREE, UNIQUE INDEX `uk_configtagrelation_configidtag`(`id`, `tag_name`, `tag_type`) USING BTREE, INDEX `idx_tenant_id`(`tenant_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_tag_relation' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'config_tag_relation' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of config_tags_relation @@ -165,7 +161,7 @@ CREATE TABLE `group_capacity` ( `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `uk_group_id`(`group_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '集群、各Group容量信息表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '集群、各Group容量信息表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of group_capacity @@ -176,7 +172,7 @@ CREATE TABLE `group_capacity` ( -- ---------------------------- DROP TABLE IF EXISTS `his_config_info`; CREATE TABLE `his_config_info` ( - `id` bigint(64) UNSIGNED NOT NULL, + `id` bigint(20) UNSIGNED NOT NULL, `nid` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, `data_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `group_id` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, @@ -193,19 +189,32 @@ CREATE TABLE `his_config_info` ( INDEX `idx_gmt_create`(`gmt_create`) USING BTREE, INDEX `idx_gmt_modified`(`gmt_modified`) USING BTREE, INDEX `idx_did`(`data_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 61 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '多租户改造' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 91 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '多租户改造' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of his_config_info -- ---------------------------- -INSERT INTO `his_config_info` VALUES (7, 53, 'jeecg-prod.yaml', 'DEFAULT_GROUP', '', 'spring:\r\n datasource:\r\n druid:\r\n stat-view-servlet:\r\n enabled: true\r\n loginUsername: admin\r\n loginPassword: 123456\r\n allow:\r\n web-stat-filter:\r\n enabled: true\r\n dynamic:\r\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\r\n # 连接池的配置信息\r\n # 初始化大小,最小,最大\r\n initial-size: 5\r\n min-idle: 5\r\n maxActive: 20\r\n # 配置获取连接等待超时的时间\r\n maxWait: 60000\r\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\r\n timeBetweenEvictionRunsMillis: 60000\r\n # 配置一个连接在池中最小生存的时间,单位是毫秒\r\n minEvictableIdleTimeMillis: 300000\r\n validationQuery: SELECT 1 FROM DUAL\r\n testWhileIdle: true\r\n testOnBorrow: false\r\n testOnReturn: false\r\n # 打开PSCache,并且指定每个连接上PSCache的大小\r\n poolPreparedStatements: true\r\n maxPoolPreparedStatementPerConnectionSize: 20\r\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\r\n filters: stat,wall,slf4j\r\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\r\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\r\n\r\n datasource:\r\n master:\r\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\r\n username: root\r\n password: root\r\n driver-class-name: com.mysql.cj.jdbc.Driver\r\n # 多数据源配置\r\n #multi-datasource1:\r\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\r\n #username: root\r\n #password: root\r\n #driver-class-name: com.mysql.cj.jdbc.Driver\r\n #redis 配置\r\n redis:\r\n database: 0\r\n host: jeecg-boot-redis\r\n lettuce:\r\n pool:\r\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\r\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\r\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\r\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\r\n shutdown-timeout: 100ms\r\n password:\r\n port: 6379\r\n #rabbitmq配置\r\n rabbitmq:\r\n host: jeecg-boot-rabbitmq\r\n username: guest\r\n password: guest\r\n port: 5672\r\n publisher-confirms: true\r\n publisher-returns: true\r\n virtual-host: /\r\n listener:\r\n simple:\r\n acknowledge-mode: manual\r\n #消费者的最小数量\r\n concurrency: 1\r\n #消费者的最大数量\r\n max-concurrency: 1\r\n #是否支持重试\r\n retry:\r\n enabled: true\r\n#jeecg专用配置\r\nminidao :\r\n base-package: org.jeecg.modules.jmreport.*\r\njeecg :\r\n # 签名密钥串(前后端要一致,正式发布请自行修改)\r\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\r\n # 本地:local\\Minio:minio\\阿里云:alioss\r\n uploadType: local\r\n path :\r\n #文件上传根目录 设置\r\n upload: /opt/upFiles\r\n #webapp文件路径\r\n webapp: /opt/webapp\r\n shiro:\r\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\r\n #阿里云oss存储配置\r\n oss:\r\n endpoint: oss-cn-beijing.aliyuncs.com\r\n accessKey: ??\r\n secretKey: ??\r\n bucketName: jeecgdev\r\n staticDomain: ??\r\n # ElasticSearch 6设置\r\n elasticsearch:\r\n cluster-name: jeecg-ES\r\n cluster-nodes: 127.0.0.1:9200\r\n check-enabled: false\r\n # 表单设计器配置\r\n desform:\r\n # 主题颜色(仅支持 16进制颜色代码)\r\n theme-color: \"#1890ff\"\r\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\r\n upload-type: system\r\n map:\r\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\r\n baidu: ??\r\n # 在线预览文件服务器地址配置\r\n file-view-domain: 127.0.0.1:8012\r\n # minio文件上传\r\n minio:\r\n minio_url: http://minio.jeecg.com\r\n minio_name: ??\r\n minio_pass: ??\r\n bucketName: otatest\r\n #大屏报表参数设置\r\n jmreport:\r\n mode: dev\r\n #是否需要校验token\r\n is_verify_token: false\r\n #必须校验方法\r\n verify_methods: remove,delete,save,add,update\r\n #Wps在线文档\r\n wps:\r\n domain: https://wwo.wps.cn/office/\r\n appid: ??\r\n appsecret: ??\r\n #xxl-job配置\r\n xxljob:\r\n enabled: false\r\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\r\n appname: ${spring.application.name}\r\n accessToken: \'\'\r\n logPath: logs/jeecg/job/jobhandler/\r\n logRetentionDays: 30\r\n #自定义路由配置 yml nacos database\r\n route:\r\n config:\r\n data-id: jeecg-gateway-router\r\n group: DEFAULT_GROUP\r\n data-type: database\r\n #分布式锁配置\r\n redisson:\r\n address: jeecg-boot-redis:6379\r\n password:\r\n type: STANDALONE\r\n enabled: true\r\n#Mybatis输出sql日志\r\nlogging:\r\n level:\r\n org.jeecg.modules.system.mapper : info\r\n#cas单点登录\r\ncas:\r\n prefixUrl: http://localhost:8888/cas\r\n#swagger\r\nknife4j:\r\n #开启生产环境屏蔽\r\n production: false\r\n basic:\r\n enable: false\r\n username: jeecg\r\n password: jeecg1314\r\n\r\n#第三方登录\r\njustauth:\r\n enabled: true\r\n type:\r\n GITHUB:\r\n client-id: ??\r\n client-secret: ??\r\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\r\n WECHAT_ENTERPRISE:\r\n client-id: ??\r\n client-secret: ??\r\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\r\n agent-id: ??\r\n DINGTALK:\r\n client-id: ??\r\n client-secret: ??\r\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\r\n cache:\r\n type: default\r\n prefix: \'demo::\'\r\n timeout: 1h\r\n#第三方APP对接\r\nthird-app:\r\n enabled: false\r\n type:\r\n #企业微信\r\n WECHAT_ENTERPRISE:\r\n enabled: false\r\n #CORP_ID\r\n client-id: ??\r\n #SECRET\r\n client-secret: ??\r\n agent-id: ??\r\n #自建应用秘钥(新版企微需要配置)\r\n # agent-app-secret: ??\r\n #钉钉\r\n DINGTALK:\r\n enabled: false\r\n # appKey\r\n client-id: ??\r\n # appSecret\r\n client-secret: ??\r\n agent-id: ??', '474e76a8eb3fa24450d51870cc1107c6', '2010-05-05 00:00:00', '2022-05-18 07:25:22', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); -INSERT INTO `his_config_info` VALUES (7, 54, 'jeecg-prod.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\n # 连接池的配置信息\n # 初始化大小,最小,最大\n initial-size: 5\n min-idle: 5\n maxActive: 20\n # 配置获取连接等待超时的时间\n maxWait: 60000\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\n timeBetweenEvictionRunsMillis: 60000\n # 配置一个连接在池中最小生存的时间,单位是毫秒\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n # 打开PSCache,并且指定每个连接上PSCache的大小\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\n filters: stat,wall,slf4j\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot-os-re?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n # 多数据源配置\n #multi-datasource1:\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n #username: root\n #password: root\n #driver-class-name: com.mysql.cj.jdbc.Driver\n #redis 配置\n redis:\n database: 0\n host: jeecg-boot-redis\n lettuce:\n pool:\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\n shutdown-timeout: 100ms\n password:\n port: 6379\n #rabbitmq配置\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n #消费者的最小数量\n concurrency: 1\n #消费者的最大数量\n max-concurrency: 1\n #是否支持重试\n retry:\n enabled: true\n#jeecg专用配置\nminidao :\n base-package: org.jeecg.modules.jmreport.*\njeecg :\n # 签名密钥串(前后端要一致,正式发布请自行修改)\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n # 本地:local\\Minio:minio\\阿里云:alioss\n uploadType: local\n path :\n #文件上传根目录 设置\n upload: /opt/upFiles\n #webapp文件路径\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n #阿里云oss存储配置\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n # ElasticSearch 6设置\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n # 表单设计器配置\n desform:\n # 主题颜色(仅支持 16进制颜色代码)\n theme-color: \"#1890ff\"\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\n upload-type: system\n map:\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\n baidu: ??\n # 在线预览文件服务器地址配置\n file-view-domain: 127.0.0.1:8012\n # minio文件上传\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n #大屏报表参数设置\n jmreport:\n mode: dev\n #是否需要校验token\n is_verify_token: false\n #必须校验方法\n verify_methods: remove,delete,save,add,update\n #Wps在线文档\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n #xxl-job配置\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n #自定义路由配置 yml nacos database\n route:\n config:\n data-id: jeecg-gateway-router\n group: DEFAULT_GROUP\n data-type: database\n #分布式锁配置\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\n#Mybatis输出sql日志\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\n#cas单点登录\ncas:\n prefixUrl: http://localhost:8888/cas\n#swagger\nknife4j:\n #开启生产环境屏蔽\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\n\n#第三方登录\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\n#第三方APP对接\nthird-app:\n enabled: false\n type:\n #企业微信\n WECHAT_ENTERPRISE:\n enabled: false\n #CORP_ID\n client-id: ??\n #SECRET\n client-secret: ??\n agent-id: ??\n #自建应用秘钥(新版企微需要配置)\n # agent-app-secret: ??\n #钉钉\n DINGTALK:\n enabled: false\n # appKey\n client-id: ??\n # appSecret\n client-secret: ??\n agent-id: ??', '4b7743e8f3db343209230ef3c84271b3', '2010-05-05 00:00:00', '2022-05-18 10:50:52', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); -INSERT INTO `his_config_info` VALUES (1, 55, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\n # 连接池的配置信息\n # 初始化大小,最小,最大\n initial-size: 5\n min-idle: 5\n maxActive: 20\n # 配置获取连接等待超时的时间\n maxWait: 60000\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\n timeBetweenEvictionRunsMillis: 60000\n # 配置一个连接在池中最小生存的时间,单位是毫秒\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n # 打开PSCache,并且指定每个连接上PSCache的大小\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\n filters: stat,wall,slf4j\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n # 多数据源配置\n #multi-datasource1:\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n #username: root\n #password: root\n #driver-class-name: com.mysql.cj.jdbc.Driver\n #redis 配置\n redis:\n database: 0\n host: jeecg-boot-redis\n lettuce:\n pool:\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\n shutdown-timeout: 100ms\n password:\n port: 6379\n #rabbitmq配置\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n #消费者的最小数量\n concurrency: 1\n #消费者的最大数量\n max-concurrency: 1\n #是否支持重试\n retry:\n enabled: true\n#jeecg专用配置\nminidao :\n base-package: org.jeecg.modules.jmreport.*\njeecg :\n # 签名密钥串(前后端要一致,正式发布请自行修改)\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n # 本地:local\\Minio:minio\\阿里云:alioss\n uploadType: local\n path :\n #文件上传根目录 设置\n upload: /opt/upFiles\n #webapp文件路径\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n #阿里云oss存储配置\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n # ElasticSearch 6设置\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n # 表单设计器配置\n desform:\n # 主题颜色(仅支持 16进制颜色代码)\n theme-color: \"#1890ff\"\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\n upload-type: system\n map:\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\n baidu: ??\n # 在线预览文件服务器地址配置\n file-view-domain: 127.0.0.1:8012\n # minio文件上传\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n #大屏报表参数设置\n jmreport:\n mode: dev\n #是否需要校验token\n is_verify_token: false\n #必须校验方法\n verify_methods: remove,delete,save,add,update\n #Wps在线文档\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n #xxl-job配置\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n #自定义路由配置 yml nacos database\n route:\n config:\n data-id: jeecg-gateway-router\n group: DEFAULT_GROUP\n data-type: database\n #分布式锁配置\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\n#Mybatis输出sql日志\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\n#cas单点登录\ncas:\n prefixUrl: http://localhost:8888/cas\n#swagger\nknife4j:\n #开启生产环境屏蔽\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\n\n#第三方登录\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\n#第三方APP对接\nthird-app:\n enabled: false\n type:\n #企业微信\n WECHAT_ENTERPRISE:\n enabled: false\n #CORP_ID\n client-id: ??\n #SECRET\n client-secret: ??\n agent-id: ??\n #自建应用秘钥(新版企微需要配置)\n # agent-app-secret: ??\n #钉钉\n DINGTALK:\n enabled: false\n # appKey\n client-id: ??\n # appSecret\n client-secret: ??\n agent-id: ??', 'd36623a8f4ca17bf79d4343b34664fea', '2010-05-05 00:00:00', '2022-05-31 02:12:40', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); -INSERT INTO `his_config_info` VALUES (2, 56, 'jeecg.yaml', 'DEFAULT_GROUP', '', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\" #暴露所有节点\n health:\n sensitive: true #关闭过滤敏感信息\n endpoint:\n health:\n show-details: ALWAYS #显示详细信息\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n ## quartz定时任务,采用数据库方式\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n #设置自动启动,默认为 true\n auto-startup: false\n #启动时更新己存在的Job\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 60000\n clusterCheckinInterval: 10000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n #json 时间戳统一转换\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n #启用作业执行器\n async-executor-activate: false\n #启用异步执行器\n job-executor-activate: false\n jpa:\n open-in-view: false\n #配置freemarker\n freemarker:\n # 设置模板后缀名\n suffix: .ftl\n # 设置文档类型\n content-type: text/html\n # 设置页面编码格式\n charset: UTF-8\n # 设置页面缓存\n cache: false\n prefer-file-system-access: false\n # 设置ftl文件路径\n template-loader-path:\n - classpath:/templates\n # 设置静态文件路径,js,css等\n mvc:\n static-path-pattern: /**\n #Spring Boot 2.6+后需手动指定为ant-path-matcher\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\n#mybatis plus 设置\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n # 关闭MP3.0自带的banner\n banner: false\n db-config:\n #主键类型 0:\"数据库ID自增\",1:\"该类型为未设置主键类型\", 2:\"用户输入ID\",3:\"全局唯一ID (数字类型唯一ID)\", 4:\"全局唯一ID UUID\",5:\"字符串全局唯一ID (idWorker 的字符串表示)\";\n id-type: ASSIGN_ID\n # 默认数据库表下划线命名\n table-underline: true\n configuration:\n # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用\n #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl\n # 返回类型为Map,显示null对应的字段\n call-setters-on-nulls: true', '8d5079bd2be1967383be77a1d03b9df3', '2010-05-05 00:00:00', '2022-05-31 02:30:23', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); -INSERT INTO `his_config_info` VALUES (1, 57, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\n # 连接池的配置信息\n # 初始化大小,最小,最大\n initial-size: 5\n min-idle: 5\n maxActive: 20\n # 配置获取连接等待超时的时间\n maxWait: 60000\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\n timeBetweenEvictionRunsMillis: 60000\n # 配置一个连接在池中最小生存的时间,单位是毫秒\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n # 打开PSCache,并且指定每个连接上PSCache的大小\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\n filters: stat,wall,slf4j\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot-os-re?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n # 多数据源配置\n #multi-datasource1:\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n #username: root\n #password: root\n #driver-class-name: com.mysql.cj.jdbc.Driver\n #redis 配置\n redis:\n database: 0\n host: jeecg-boot-redis\n lettuce:\n pool:\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\n shutdown-timeout: 100ms\n password:\n port: 6379\n #rabbitmq配置\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n #消费者的最小数量\n concurrency: 1\n #消费者的最大数量\n max-concurrency: 1\n #是否支持重试\n retry:\n enabled: true\n#jeecg专用配置\nminidao :\n base-package: org.jeecg.modules.jmreport.*\njeecg :\n # 签名密钥串(前后端要一致,正式发布请自行修改)\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n # 本地:local\\Minio:minio\\阿里云:alioss\n uploadType: local\n path :\n #文件上传根目录 设置\n upload: /opt/upFiles\n #webapp文件路径\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n #阿里云oss存储配置\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n # ElasticSearch 6设置\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n # 表单设计器配置\n desform:\n # 主题颜色(仅支持 16进制颜色代码)\n theme-color: \"#1890ff\"\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\n upload-type: system\n map:\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\n baidu: ??\n # 在线预览文件服务器地址配置\n file-view-domain: 127.0.0.1:8012\n # minio文件上传\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n #大屏报表参数设置\n jmreport:\n mode: dev\n #是否需要校验token\n is_verify_token: false\n #必须校验方法\n verify_methods: remove,delete,save,add,update\n #Wps在线文档\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n #xxl-job配置\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n #自定义路由配置 yml nacos database\n route:\n config:\n data-id: jeecg-gateway-router\n group: DEFAULT_GROUP\n data-type: database\n #分布式锁配置\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\n#Mybatis输出sql日志\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\n#cas单点登录\ncas:\n prefixUrl: http://localhost:8888/cas\n#swagger\nknife4j:\n #开启生产环境屏蔽\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\n\n#第三方登录\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\n#第三方APP对接\nthird-app:\n enabled: false\n type:\n #企业微信\n WECHAT_ENTERPRISE:\n enabled: false\n #CORP_ID\n client-id: ??\n #SECRET\n client-secret: ??\n agent-id: ??\n #自建应用秘钥(新版企微需要配置)\n # agent-app-secret: ??\n #钉钉\n DINGTALK:\n enabled: false\n # appKey\n client-id: ??\n # appSecret\n client-secret: ??\n agent-id: ??', '4b7743e8f3db343209230ef3c84271b3', '2010-05-05 00:00:00', '2022-07-19 15:47:22', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); -INSERT INTO `his_config_info` VALUES (1, 58, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\n # 连接池的配置信息\n # 初始化大小,最小,最大\n initial-size: 5\n min-idle: 5\n maxActive: 20\n # 配置获取连接等待超时的时间\n maxWait: 60000\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\n timeBetweenEvictionRunsMillis: 60000\n # 配置一个连接在池中最小生存的时间,单位是毫秒\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n # 打开PSCache,并且指定每个连接上PSCache的大小\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\n filters: stat,wall,slf4j\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n # 多数据源配置\n #multi-datasource1:\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n #username: root\n #password: root\n #driver-class-name: com.mysql.cj.jdbc.Driver\n #redis 配置\n redis:\n database: 0\n host: jeecg-boot-redis\n lettuce:\n pool:\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\n shutdown-timeout: 100ms\n password:\n port: 6379\n #rabbitmq配置\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n #消费者的最小数量\n concurrency: 1\n #消费者的最大数量\n max-concurrency: 1\n #是否支持重试\n retry:\n enabled: true\n#jeecg专用配置\nminidao :\n base-package: org.jeecg.modules.jmreport.*\njeecg :\n # 签名密钥串(前后端要一致,正式发布请自行修改)\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n # 本地:local\\Minio:minio\\阿里云:alioss\n uploadType: local\n path :\n #文件上传根目录 设置\n upload: /opt/upFiles\n #webapp文件路径\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n #阿里云oss存储配置\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n # ElasticSearch 6设置\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n # 表单设计器配置\n desform:\n # 主题颜色(仅支持 16进制颜色代码)\n theme-color: \"#1890ff\"\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\n upload-type: system\n map:\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\n baidu: ??\n # 在线预览文件服务器地址配置\n file-view-domain: 127.0.0.1:8012\n # minio文件上传\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n #大屏报表参数设置\n jmreport:\n mode: dev\n #是否需要校验token\n is_verify_token: false\n #必须校验方法\n verify_methods: remove,delete,save,add,update\n #Wps在线文档\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n #xxl-job配置\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n #自定义路由配置 yml nacos database\n route:\n config:\n data-id: jeecg-gateway-router\n group: DEFAULT_GROUP\n data-type: database\n #分布式锁配置\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\n#Mybatis输出sql日志\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\n#cas单点登录\ncas:\n prefixUrl: http://localhost:8888/cas\n#swagger\nknife4j:\n #开启生产环境屏蔽\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\n\n#第三方登录\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\n#第三方APP对接\nthird-app:\n enabled: false\n type:\n #企业微信\n WECHAT_ENTERPRISE:\n enabled: false\n #CORP_ID\n client-id: ??\n #SECRET\n client-secret: ??\n agent-id: ??\n #自建应用秘钥(新版企微需要配置)\n # agent-app-secret: ??\n #钉钉\n DINGTALK:\n enabled: false\n # appKey\n client-id: ??\n # appSecret\n client-secret: ??\n agent-id: ??', 'd36623a8f4ca17bf79d4343b34664fea', '2010-05-05 00:00:00', '2022-07-19 16:00:23', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); -INSERT INTO `his_config_info` VALUES (6, 59, 'jeecg-test.yaml', 'DEFAULT_GROUP', '', 'spring:\r\n datasource:\r\n druid:\r\n stat-view-servlet:\r\n enabled: true\r\n loginUsername: admin\r\n loginPassword: 123456\r\n allow:\r\n web-stat-filter:\r\n enabled: true\r\n dynamic:\r\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\r\n # 连接池的配置信息\r\n # 初始化大小,最小,最大\r\n initial-size: 5\r\n min-idle: 5\r\n maxActive: 20\r\n # 配置获取连接等待超时的时间\r\n maxWait: 60000\r\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\r\n timeBetweenEvictionRunsMillis: 60000\r\n # 配置一个连接在池中最小生存的时间,单位是毫秒\r\n minEvictableIdleTimeMillis: 300000\r\n validationQuery: SELECT 1 FROM DUAL\r\n testWhileIdle: true\r\n testOnBorrow: false\r\n testOnReturn: false\r\n # 打开PSCache,并且指定每个连接上PSCache的大小\r\n poolPreparedStatements: true\r\n maxPoolPreparedStatementPerConnectionSize: 20\r\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\r\n filters: stat,wall,slf4j\r\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\r\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\r\n\r\n datasource:\r\n master:\r\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\r\n username: root\r\n password: root\r\n driver-class-name: com.mysql.cj.jdbc.Driver\r\n # 多数据源配置\r\n #multi-datasource1:\r\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\r\n #username: root\r\n #password: root\r\n #driver-class-name: com.mysql.cj.jdbc.Driver\r\n #redis 配置\r\n redis:\r\n database: 0\r\n host: jeecg-boot-redis\r\n lettuce:\r\n pool:\r\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\r\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\r\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\r\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\r\n shutdown-timeout: 100ms\r\n password:\r\n port: 6379\r\n #rabbitmq配置\r\n rabbitmq:\r\n host: jeecg-boot-rabbitmq\r\n username: guest\r\n password: guest\r\n port: 5672\r\n publisher-confirms: true\r\n publisher-returns: true\r\n virtual-host: /\r\n listener:\r\n simple:\r\n acknowledge-mode: manual\r\n #消费者的最小数量\r\n concurrency: 1\r\n #消费者的最大数量\r\n max-concurrency: 1\r\n #是否支持重试\r\n retry:\r\n enabled: true\r\n#jeecg专用配置\r\nminidao :\r\n base-package: org.jeecg.modules.jmreport.*\r\njeecg :\r\n # 签名密钥串(前后端要一致,正式发布请自行修改)\r\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\r\n # 本地:local\\Minio:minio\\阿里云:alioss\r\n uploadType: local\r\n path :\r\n #文件上传根目录 设置\r\n upload: /opt/upFiles\r\n #webapp文件路径\r\n webapp: /opt/webapp\r\n shiro:\r\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\r\n #阿里云oss存储配置\r\n oss:\r\n endpoint: oss-cn-beijing.aliyuncs.com\r\n accessKey: ??\r\n secretKey: ??\r\n bucketName: jeecgdev\r\n staticDomain: ??\r\n # ElasticSearch 6设置\r\n elasticsearch:\r\n cluster-name: jeecg-ES\r\n cluster-nodes: 127.0.0.1:9200\r\n check-enabled: false\r\n # 表单设计器配置\r\n desform:\r\n # 主题颜色(仅支持 16进制颜色代码)\r\n theme-color: \"#1890ff\"\r\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\r\n upload-type: system\r\n map:\r\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\r\n baidu: ??\r\n # 在线预览文件服务器地址配置\r\n file-view-domain: 127.0.0.1:8012\r\n # minio文件上传\r\n minio:\r\n minio_url: http://minio.jeecg.com\r\n minio_name: ??\r\n minio_pass: ??\r\n bucketName: otatest\r\n #大屏报表参数设置\r\n jmreport:\r\n mode: dev\r\n #是否需要校验token\r\n is_verify_token: false\r\n #必须校验方法\r\n verify_methods: remove,delete,save,add,update\r\n #Wps在线文档\r\n wps:\r\n domain: https://wwo.wps.cn/office/\r\n appid: ??\r\n appsecret: ??\r\n #xxl-job配置\r\n xxljob:\r\n enabled: false\r\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\r\n appname: ${spring.application.name}\r\n accessToken: \'\'\r\n logPath: logs/jeecg/job/jobhandler/\r\n logRetentionDays: 30\r\n #自定义路由配置 yml nacos database\r\n route:\r\n config:\r\n data-id: jeecg-gateway-router\r\n group: DEFAULT_GROUP\r\n data-type: database\r\n #分布式锁配置\r\n redisson:\r\n address: jeecg-boot-redis:6379\r\n password:\r\n type: STANDALONE\r\n enabled: true\r\n#Mybatis输出sql日志\r\nlogging:\r\n level:\r\n org.jeecg.modules.system.mapper : info\r\n#cas单点登录\r\ncas:\r\n prefixUrl: http://localhost:8888/cas\r\n#swagger\r\nknife4j:\r\n #开启生产环境屏蔽\r\n production: false\r\n basic:\r\n enable: false\r\n username: jeecg\r\n password: jeecg1314\r\n\r\n#第三方登录\r\njustauth:\r\n enabled: true\r\n type:\r\n GITHUB:\r\n client-id: ??\r\n client-secret: ??\r\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\r\n WECHAT_ENTERPRISE:\r\n client-id: ??\r\n client-secret: ??\r\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\r\n agent-id: ??\r\n DINGTALK:\r\n client-id: ??\r\n client-secret: ??\r\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\r\n cache:\r\n type: default\r\n prefix: \'demo::\'\r\n timeout: 1h\r\n#第三方APP对接\r\nthird-app:\r\n enabled: false\r\n type:\r\n #企业微信\r\n WECHAT_ENTERPRISE:\r\n enabled: false\r\n #CORP_ID\r\n client-id: ??\r\n #SECRET\r\n client-secret: ??\r\n agent-id: ??\r\n #自建应用秘钥(新版企微需要配置)\r\n # agent-app-secret: ??\r\n #钉钉\r\n DINGTALK:\r\n enabled: false\r\n # appKey\r\n client-id: ??\r\n # appSecret\r\n client-secret: ??\r\n agent-id: ??', '474e76a8eb3fa24450d51870cc1107c6', '2010-05-05 00:00:00', '2022-07-19 16:00:39', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); -INSERT INTO `his_config_info` VALUES (7, 60, 'jeecg-prod.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid: # 全局druid参数,绝大部分值和默认保持一致。(现已支持的参数如下,不清楚含义不要乱设置)\n # 连接池的配置信息\n # 初始化大小,最小,最大\n initial-size: 5\n min-idle: 5\n maxActive: 20\n # 配置获取连接等待超时的时间\n maxWait: 60000\n # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒\n timeBetweenEvictionRunsMillis: 60000\n # 配置一个连接在池中最小生存的时间,单位是毫秒\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n # 打开PSCache,并且指定每个连接上PSCache的大小\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,\'wall\'用于防火墙\n filters: stat,wall,slf4j\n # 通过connectProperties属性来打开mergeSql功能;慢SQL记录\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n # 多数据源配置\n #multi-datasource1:\n #url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n #username: root\n #password: root\n #driver-class-name: com.mysql.cj.jdbc.Driver\n #redis 配置\n redis:\n database: 0\n host: jeecg-boot-redis\n lettuce:\n pool:\n max-active: 8 #最大连接数据库连接数,设 0 为没有限制\n max-idle: 8 #最大等待连接中的数量,设 0 为没有限制\n max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\n min-idle: 0 #最小等待连接中的数量,设 0 为没有限制\n shutdown-timeout: 100ms\n password:\n port: 6379\n #rabbitmq配置\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n #消费者的最小数量\n concurrency: 1\n #消费者的最大数量\n max-concurrency: 1\n #是否支持重试\n retry:\n enabled: true\n#jeecg专用配置\nminidao :\n base-package: org.jeecg.modules.jmreport.*\njeecg :\n # 签名密钥串(前后端要一致,正式发布请自行修改)\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n # 本地:local\\Minio:minio\\阿里云:alioss\n uploadType: local\n path :\n #文件上传根目录 设置\n upload: /opt/upFiles\n #webapp文件路径\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n #阿里云oss存储配置\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n # ElasticSearch 6设置\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n # 表单设计器配置\n desform:\n # 主题颜色(仅支持 16进制颜色代码)\n theme-color: \"#1890ff\"\n # 文件、图片上传方式,可选项:qiniu(七牛云)、system(跟随系统配置)\n upload-type: system\n map:\n # 配置百度地图的AK,申请地址:https://lbs.baidu.com/apiconsole/key?application=key#/home\n baidu: ??\n # 在线预览文件服务器地址配置\n file-view-domain: 127.0.0.1:8012\n # minio文件上传\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n #大屏报表参数设置\n jmreport:\n mode: dev\n #是否需要校验token\n is_verify_token: false\n #必须校验方法\n verify_methods: remove,delete,save,add,update\n #Wps在线文档\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n #xxl-job配置\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n #自定义路由配置 yml nacos database\n route:\n config:\n data-id: jeecg-gateway-router\n group: DEFAULT_GROUP\n data-type: database\n #分布式锁配置\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\n#Mybatis输出sql日志\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\n#cas单点登录\ncas:\n prefixUrl: http://localhost:8888/cas\n#swagger\nknife4j:\n #开启生产环境屏蔽\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\n\n#第三方登录\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\n#第三方APP对接\nthird-app:\n enabled: false\n type:\n #企业微信\n WECHAT_ENTERPRISE:\n enabled: false\n #CORP_ID\n client-id: ??\n #SECRET\n client-secret: ??\n agent-id: ??\n #自建应用秘钥(新版企微需要配置)\n # agent-app-secret: ??\n #钉钉\n DINGTALK:\n enabled: false\n # appKey\n client-id: ??\n # appSecret\n client-secret: ??\n agent-id: ??', 'd36623a8f4ca17bf79d4343b34664fea', '2010-05-05 00:00:00', '2022-07-19 16:01:00', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (20, 70, 'jeecg-gateway-dev.yaml', 'DEFAULT_GROUP', '', 'jeecg:\n route:\n config:\n #mode: database、nacos、yml\n data-type: database\n #nacos: jeecg-gateway-router.json\n group: DEFAULT_GROUP\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', '26fff601e10bbc8bc5ff1fa2b192087b', '2010-05-05 00:00:00', '2022-08-05 10:45:21', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 71, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao :\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg :\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path :\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n desform:\n theme-color: \"#1890ff\"\n upload-type: system\n map:\n baidu: ??\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\n\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n # agent-app-secret: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '17b0553ae2ade6474301e3d4eca6f05e', '2010-05-05 00:00:00', '2022-08-05 10:54:54', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 72, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: 127.0.0.1:9200\n check-enabled: false\n desform:\n theme-color: \'#1890ff\'\n upload-type: system\n map:\n baidu: ??\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '70922f6374bf2e4ccf0de8c089445811', '2010-05-05 00:00:00', '2022-08-05 10:57:40', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 73, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n desform:\n theme-color: \'#1890ff\'\n upload-type: system\n map:\n baidu: ??\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '035fff10fc0e5a38abf3c357afff7c67', '2010-05-05 00:00:00', '2022-08-05 10:59:02', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 74, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n desform:\n theme-color: \"#1890ff\"\n upload-type: system\n map:\n baidu: ??\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '87ec968621f8ac532e2fc50f98dd4f57', '2010-05-05 00:00:00', '2022-08-05 11:00:08', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 75, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', 'edb0e79d570edf341755caf3853f11e4', '2010-05-05 00:00:00', '2022-08-05 11:01:10', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 76, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n desform:\n theme-color: \"#1890ff\"\n upload-type: system\n map:\n baidu: ??\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '53b1c1130dff673311ad863b4ce67c8e', '2010-05-05 00:00:00', '2022-08-05 11:02:49', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 77, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n desform:\n theme-color: \"#1890ff\"\n upload-type: system\n map:\n baidu: ??\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '32d655df70c77beb8e39c5d3d8c69c9c', '2010-05-05 00:00:00', '2022-08-05 11:03:31', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 78, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\nsignUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n desform:\n theme-color: \"#1890ff\"\n upload-type: system\n map:\n baidu: ??\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', 'd3b15d3bb35c4baed32f75eabb2bf864', '2010-05-05 00:00:00', '2022-08-05 11:04:54', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 79, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n desform:\n theme-color: \"#1890ff\"\n upload-type: system\n map:\n baidu: ??\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '53b1c1130dff673311ad863b4ce67c8e', '2010-05-05 00:00:00', '2022-08-05 13:02:54', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 80, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n desform:\n theme-color: \"#1890ff\"\n upload-type: system\n map:\n baidu: ??\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true', '92ced3a81dece861666606c44cd4f630', '2010-05-05 00:00:00', '2022-08-05 13:03:28', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 81, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp', '364814ff81fb2a38c869f7bb5aa92f45', '2010-05-05 00:00:00', '2022-08-05 13:03:55', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 82, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379', '064d0471e33d707a5b70e0807f8f0d93', '2010-05-05 00:00:00', '2022-08-05 13:04:39', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (2, 83, 'jeecg.yaml', 'DEFAULT_GROUP', '', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\"\n health:\n sensitive: true\n endpoint:\n health:\n show-details: ALWAYS\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n auto-startup: false\n startup-delay: 1s\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 12000\n clusterCheckinInterval: 15000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n async-executor-activate: false\n job-executor-activate: false\n jpa:\n open-in-view: false\n freemarker:\n suffix: .ftl\n content-type: text/html\n charset: UTF-8\n cache: false\n prefer-file-system-access: false\n template-loader-path:\n - classpath:/templates\n mvc:\n static-path-pattern: /**\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: ASSIGN_ID\n table-underline: true\n configuration:\n call-setters-on-nulls: true', '2117a96ba08e8fd0f66825e87416af27', '2010-05-05 00:00:00', '2022-08-05 13:05:34', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 84, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n dynamic:\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379', 'a12eaf6e6c090b303590f1e83c22ac3f', '2010-05-05 00:00:00', '2022-08-05 13:07:33', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 85, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n dynamic:\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379', '5e33b9dc9022eee8a1652e473dadbc42', '2010-05-05 00:00:00', '2022-08-05 13:09:30', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (2, 86, 'jeecg.yaml', 'DEFAULT_GROUP', '', 'server:\n tomcat:\n max-swallow-size: -1', '4525d8351d9498a8e5f43373ee6367a1', '2010-05-05 00:00:00', '2022-08-05 13:09:55', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (2, 87, 'jeecg.yaml', 'DEFAULT_GROUP', '', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\"\n health:\n sensitive: true\n endpoint:\n health:\n show-details: ALWAYS\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n auto-startup: false\n startup-delay: 1s\n overwrite-existing-jobs: true\n properties:\n org:\n quartz:\n scheduler:\n instanceName: MyScheduler\n instanceId: AUTO\n jobStore:\n class: org.springframework.scheduling.quartz.LocalDataSourceJobStore\n driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate\n tablePrefix: QRTZ_\n isClustered: true\n misfireThreshold: 12000\n clusterCheckinInterval: 15000\n threadPool:\n class: org.quartz.simpl.SimpleThreadPool\n threadCount: 10\n threadPriority: 5\n threadsInheritContextClassLoaderOfInitializingThread: true\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n async-executor-activate: false\n job-executor-activate: false\n jpa:\n open-in-view: false\n freemarker:\n suffix: .ftl\n content-type: text/html\n charset: UTF-8\n cache: false\n prefer-file-system-access: false\n template-loader-path:\n - classpath:/templates\n mvc:\n static-path-pattern: /**\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: ASSIGN_ID\n table-underline: true\n configuration:\n call-setters-on-nulls: true', '2117a96ba08e8fd0f66825e87416af27', '2010-05-05 00:00:00', '2022-08-05 13:10:58', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (2, 88, 'jeecg.yaml', 'DEFAULT_GROUP', '', 'server:\n tomcat:\n max-swallow-size: -1\n error:\n include-exception: true\n include-stacktrace: ALWAYS\n include-message: ALWAYS\n compression:\n enabled: true\n min-response-size: 1024\n mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*\nmanagement:\n health:\n mail:\n enabled: false\n endpoints:\n web:\n exposure:\n include: \"*\"\n health:\n sensitive: true\n endpoint:\n health:\n show-details: ALWAYS\nspring:\n servlet:\n multipart:\n max-file-size: 10MB\n max-request-size: 10MB\n mail:\n host: smtp.163.com\n username: jeecgos@163.com\n password: ??\n properties:\n mail:\n smtp:\n auth: true\n starttls:\n enable: true\n required: true\n quartz:\n job-store-type: jdbc\n initialize-schema: embedded\n auto-startup: false\n jackson:\n date-format: yyyy-MM-dd HH:mm:ss\n time-zone: GMT+8\n aop:\n proxy-target-class: true\n activiti:\n check-process-definitions: false\n async-executor-activate: false\n job-executor-activate: false\n jpa:\n open-in-view: false\n freemarker:\n suffix: .ftl\n content-type: text/html\n charset: UTF-8\n cache: false\n prefer-file-system-access: false\n template-loader-path:\n - classpath:/templates\n mvc:\n static-path-pattern: /**\n pathmatch:\n matching-strategy: ant_path_matcher\n resource:\n static-locations: classpath:/static/,classpath:/public/\n autoconfigure:\n exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure\nmybatis-plus:\n mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml\n global-config:\n banner: false\n db-config:\n id-type: ASSIGN_ID\n table-underline: true\n configuration:\n call-setters-on-nulls: true', 'a1effef2c22a7d2846f84728aa29ecd4', '2010-05-05 00:00:00', '2022-08-05 13:12:21', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (1, 89, 'jeecg-dev.yaml', 'DEFAULT_GROUP', '', 'spring:\n datasource:\n druid:\n stat-view-servlet:\n enabled: true\n loginUsername: admin\n loginPassword: 123456\n allow:\n web-stat-filter:\n enabled: true\n dynamic:\n druid:\n initial-size: 5\n min-idle: 5\n maxActive: 20\n maxWait: 60000\n timeBetweenEvictionRunsMillis: 60000\n minEvictableIdleTimeMillis: 300000\n validationQuery: SELECT 1 FROM DUAL\n testWhileIdle: true\n testOnBorrow: false\n testOnReturn: false\n poolPreparedStatements: true\n maxPoolPreparedStatementPerConnectionSize: 20\n filters: stat,wall,slf4j\n connectionProperties: druid.stat.mergeSql\\=true;druid.stat.slowSqlMillis\\=5000\n datasource:\n master:\n url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai\n username: root\n password: root\n driver-class-name: com.mysql.cj.jdbc.Driver\n redis:\n database: 0\n host: jeecg-boot-redis\n password:\n port: 6379\n rabbitmq:\n host: jeecg-boot-rabbitmq\n username: guest\n password: guest\n port: 5672\n publisher-confirms: true\n publisher-returns: true\n virtual-host: /\n listener:\n simple:\n acknowledge-mode: manual\n concurrency: 1\n max-concurrency: 1\n retry:\n enabled: true\nminidao:\n base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.*\njeecg:\n signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a\n signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys\n uploadType: local\n domainUrl:\n pc: http://localhost:3100\n app: http://localhost:8051\n path:\n upload: /opt/upFiles\n webapp: /opt/webapp\n shiro:\n excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**\n desform:\n theme-color: \"#1890ff\"\n upload-type: system\n map:\n baidu: ??\n oss:\n endpoint: oss-cn-beijing.aliyuncs.com\n accessKey: ??\n secretKey: ??\n bucketName: jeecgdev\n staticDomain: ??\n elasticsearch:\n cluster-name: jeecg-ES\n cluster-nodes: jeecg-boot-es:9200\n check-enabled: false\n file-view-domain: 127.0.0.1:8012\n minio:\n minio_url: http://minio.jeecg.com\n minio_name: ??\n minio_pass: ??\n bucketName: otatest\n jmreport:\n mode: dev\n is_verify_token: false\n verify_methods: remove,delete,save,add,update\n wps:\n domain: https://wwo.wps.cn/office/\n appid: ??\n appsecret: ??\n xxljob:\n enabled: false\n adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin\n appname: ${spring.application.name}\n accessToken: \'\'\n logPath: logs/jeecg/job/jobhandler/\n logRetentionDays: 30\n redisson:\n address: jeecg-boot-redis:6379\n password:\n type: STANDALONE\n enabled: true\nlogging:\n level:\n org.jeecg.modules.system.mapper : info\ncas:\n prefixUrl: http://localhost:8888/cas\nknife4j:\n production: false\n basic:\n enable: false\n username: jeecg\n password: jeecg1314\njustauth:\n enabled: true\n type:\n GITHUB:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback\n WECHAT_ENTERPRISE:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback\n agent-id: ??\n DINGTALK:\n client-id: ??\n client-secret: ??\n redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback\n cache:\n type: default\n prefix: \'demo::\'\n timeout: 1h\nthird-app:\n enabled: false\n type:\n WECHAT_ENTERPRISE:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??\n DINGTALK:\n enabled: false\n client-id: ??\n client-secret: ??\n agent-id: ??', '53b1c1130dff673311ad863b4ce67c8e', '2010-05-05 00:00:00', '2022-08-06 07:10:17', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); +INSERT INTO `his_config_info` VALUES (20, 90, 'jeecg-gateway-dev.yaml', 'DEFAULT_GROUP', '', 'jeecg:\n route:\n config:\n #mode:database nacos yml\n data-type: database\n group: DEFAULT_GROUP\n data-id: jeecg-gateway-router\nspring:\n redis:\n database: 0\n host: jeecg-boot-redis\n port: 6379\n password:', 'b08a4c456f508fdd0fc347305da39a9e', '2010-05-05 00:00:00', '2022-08-06 07:11:34', 'nacos', '0:0:0:0:0:0:0:1', 'U', ''); -- ---------------------------- -- Table structure for permissions @@ -216,7 +225,7 @@ CREATE TABLE `permissions` ( `resource` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `action` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, UNIQUE INDEX `uk_role_permission`(`role`, `resource`, `action`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of permissions @@ -230,7 +239,7 @@ CREATE TABLE `roles` ( `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `role` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, UNIQUE INDEX `uk_username_role`(`username`, `role`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of roles @@ -254,7 +263,7 @@ CREATE TABLE `tenant_capacity` ( `gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `uk_tenant_id`(`tenant_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '租户容量信息表' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '租户容量信息表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of tenant_capacity @@ -276,7 +285,7 @@ CREATE TABLE `tenant_info` ( PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `uk_tenant_info_kptenantid`(`kp`, `tenant_id`) USING BTREE, INDEX `idx_tenant_id`(`tenant_id`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'tenant_info' ROW_FORMAT = Dynamic; +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = 'tenant_info' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of tenant_info @@ -292,11 +301,11 @@ CREATE TABLE `users` ( `password` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `enabled` tinyint(1) NOT NULL, PRIMARY KEY (`username`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of users -- ---------------------------- INSERT INTO `users` VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', 1); -SET FOREIGN_KEY_CHECKS = 1; +SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/jeecg-boot/db/jeecgboot-oracle11g.dmp b/jeecg-boot/db/其他类型库/jeecgboot-oracle11g.dmp similarity index 100% rename from jeecg-boot/db/jeecgboot-oracle11g.dmp rename to jeecg-boot/db/其他类型库/jeecgboot-oracle11g.dmp diff --git a/jeecg-boot/db/jeecgboot-oracle11g.sql b/jeecg-boot/db/其他类型库/jeecgboot-oracle11g.sql similarity index 100% rename from jeecg-boot/db/jeecgboot-oracle11g.sql rename to jeecg-boot/db/其他类型库/jeecgboot-oracle11g.sql diff --git a/jeecg-boot/db/jeecgboot-sqlserver2019.sql b/jeecg-boot/db/其他类型库/jeecgboot-sqlserver2019.sql similarity index 100% rename from jeecg-boot/db/jeecgboot-sqlserver2019.sql rename to jeecg-boot/db/其他类型库/jeecgboot-sqlserver2019.sql diff --git a/jeecg-boot/docker-compose-server.yml b/jeecg-boot/docker-compose-server.yml deleted file mode 100644 index c45a6a5a..00000000 --- a/jeecg-boot/docker-compose-server.yml +++ /dev/null @@ -1,51 +0,0 @@ -#### 镜像上传 -# 仓库私服: 81.70.17.111:5000 -# 第一步:上传镜像到docker仓库 -#docker tag jeecg-boot-mysql 81.70.17.111:5000/jeecg-boot-mysql:1.1 -#docker tag jeecg-boot-system 81.70.17.111:5000/jeecg-boot-system:1.0 -#docker tag nginxhtml:jeecgboot 81.70.17.111:5000/nginxhtml:1.2 - -#docker push 81.70.17.111:5000/jeecg-boot-mysql:1.1 -#docker push 81.70.17.111:5000/jeecg-boot-system:1.0 -#docker push 81.70.17.111:5000/nginxhtml:1.2 - -# 第二步:将此yml文件上传服务器,执行启动命令 docker-compose -f ./docker-compose-server.yml up -version: '2' -services: - jeecg-boot-mysql: - image: 81.70.17.111:5000/jeecg-boot-mysql:1.0 - environment: - MYSQL_ROOT_PASSWORD: root - restart: always - container_name: jeecg-boot-mysql - command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci - --explicit_defaults_for_timestamp=true - --lower_case_table_names=1 - --max_allowed_packet=128M - ports: - - 3306:3306 - - jeecg-boot-redis: - image: redis:5.0 - ports: - - 6379:6379 - restart: always - container_name: jeecg-boot-redis - - jeecg-boot-system: - image: 81.70.17.111:5000/jeecg-boot-system:1.0 - restart: always - container_name: jeecg-boot-system - volumes: - - /data/config:/jeecg-boot/config - ports: - - 8080:8080 - - jeecg-boot-nginx: - image: 81.70.17.111:5000/nginxhtml - restart: always - container_name: jeecg-boot-nginx - ports: - - 80:80 \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/pom.xml b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/pom.xml index a4188b33..d9306fd9 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/pom.xml +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-cloud-api/pom.xml @@ -5,7 +5,7 @@ jeecg-boot-base-api org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-local-api/pom.xml b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-local-api/pom.xml index 9e4a1bfa..5e1aac0d 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-local-api/pom.xml +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/jeecg-system-local-api/pom.xml @@ -5,7 +5,7 @@ jeecg-boot-base-api org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/pom.xml b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/pom.xml index dd67802c..68ec8865 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/pom.xml +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-api/pom.xml @@ -5,7 +5,7 @@ jeecg-boot-base org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/pom.xml b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/pom.xml index 416b2fec..8b8aea7d 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/pom.xml +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/pom.xml @@ -4,37 +4,17 @@ org.jeecgframework.boot jeecg-boot-base - 3.3.0 + 3.4.0 4.0.0 jeecg-boot-base-core - - - aliyun - aliyun Repository - https://maven.aliyun.com/repository/public - - false - - - - jeecg - jeecg Repository - https://maven.jeecg.org/nexus/content/repositories/jeecg - - false - - - - - org.jeecgframework.boot - jeecg-boot-base-tools + jeecg-boot-common diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java index a818c679..991b336e 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java @@ -304,16 +304,21 @@ public interface CommonConstant { String WPS_TYPE_2="2"; + /**===============================================================================================*/ + /** + * ::非常重要:: + * 注意:这四个常量值如果修改,需要与 jeecg-boot-starter/jeecg-boot-common/org.jeecg.config.FeignConfig 类中的值保持一致。 + */ String X_ACCESS_TOKEN = "X-Access-Token"; String X_SIGN = "X-Sign"; String X_TIMESTAMP = "X-TIMESTAMP"; + /** 租户 请求头*/ + String TENANT_ID = "tenant-id"; + /**===============================================================================================*/ + String TOKEN_IS_INVALID_MSG = "Token失效,请重新登录!"; String X_FORWARDED_SCHEME = "X-Forwarded-Scheme"; - /** - * 多租户 请求头 - */ - String TENANT_ID = "tenant-id"; /** * 微服务读取配置文件属性 服务地址 diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/PathMatcherUtil.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/PathMatcherUtil.java deleted file mode 100644 index f8736a18..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/PathMatcherUtil.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.jeecg.common.util; - -import java.util.Collection; -import java.util.Map; - -import org.springframework.util.AntPathMatcher; - -/** - * 使用Spring自身提供的地址匹配工具匹配URL - * @author: jeecg-boot - */ -public class PathMatcherUtil { - - public static void main(String[] args) { - String url = "/sys/dict/loadDictOrderByValue/tree,s2,2"; - String p = "/sys/dict/loadDictOrderByValue/*"; - - System.out.println(PathMatcherUtil.match(p,url)); - } - - /** - * 实际验证路径匹配权限 - * - * @param matchPath 权限url - * @param path 访问路径 - * @return 是否拥有权限 - */ - public static boolean match(String matchPath, String path) { - SpringAntMatcher springAntMatcher = new SpringAntMatcher(matchPath, true); - return springAntMatcher.matches(path); - } - - /** - * 实际验证路径匹配权限 - * - * @param list 权限url - * @param path 访问路径 - * @return 是否拥有权限 - */ - public static boolean matches(Collection list, String path) { - for (String s : list) { - SpringAntMatcher springAntMatcher = new SpringAntMatcher(s, true); - if (springAntMatcher.matches(path)) { - return true; - } - } - return false; - } - - /** - * 地址表达式匹配工具 - */ - private static class SpringAntMatcher implements Matcher { - private final AntPathMatcher antMatcher; - private final String pattern; - - private SpringAntMatcher(String pattern, boolean caseSensitive) { - this.pattern = pattern; - this.antMatcher = createMatcher(caseSensitive); - } - - @Override - public boolean matches(String path) { - return this.antMatcher.match(this.pattern, path); - } - - @Override - public Map extractUriTemplateVariables(String path) { - return this.antMatcher.extractUriTemplateVariables(this.pattern, path); - } - - private static AntPathMatcher createMatcher(boolean caseSensitive) { - AntPathMatcher matcher = new AntPathMatcher(); - matcher.setTrimTokens(false); - matcher.setCaseSensitive(caseSensitive); - return matcher; - } - } - - private interface Matcher { - - /** - * 实际验证路径匹配权限 - * @param var1 - * @return - */ - boolean matches(String var1); - - /** - * 提取path中匹配到的部分 - * @param var1 - * @return - */ - Map extractUriTemplateVariables(String var1); - } -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/JeecgBaseConfig.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/JeecgBaseConfig.java index 12a9cc0b..3c38f7b9 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/JeecgBaseConfig.java +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/JeecgBaseConfig.java @@ -19,6 +19,10 @@ public class JeecgBaseConfig { * @TODO 降低使用成本加的默认值,实际以 yml配置 为准 */ private String signatureSecret = "dd05f1c54d63749eda95f9fa6d49v442a"; + /** + * 需要加强校验的接口清单 + */ + private String signUrls; /** * 是否启用安全模式 @@ -79,4 +83,12 @@ public class JeecgBaseConfig { public void setDomainUrl(DomainUrl domainUrl) { this.domainUrl = domainUrl; } + + public String getSignUrls() { + return signUrls; + } + + public void setSignUrls(String signUrls) { + this.signUrls = signUrls; + } } diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebMvcConfiguration.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebMvcConfiguration.java index 69d804e1..59b2557a 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebMvcConfiguration.java +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/WebMvcConfiguration.java @@ -45,11 +45,9 @@ import java.util.List; @Configuration public class WebMvcConfiguration implements WebMvcConfigurer { - @Value("${jeecg.path.upload}") - private String upLoadPath; - @Value("${jeecg.path.webapp}") - private String webAppPath; - @Value("${spring.resource.static-locations}") + @Autowired + JeecgBaseConfig jeecgBaseConfig; + @Value("${spring.resource.static-locations:}") private String staticLocations; @Autowired(required = false) @@ -62,8 +60,8 @@ public class WebMvcConfiguration implements WebMvcConfigurer { public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**") //update-begin-author:taoyan date:20211116 for: jeecg.path.webapp配置无效 #3126 - .addResourceLocations("file:" + upLoadPath + "//") - .addResourceLocations("file:" + webAppPath + "//") + .addResourceLocations("file:" + jeecgBaseConfig.getPath().getUpload() + "//") + .addResourceLocations("file:" + jeecgBaseConfig.getPath().getWebapp() + "//") //update-end-author:taoyan date:20211116 for: jeecg.path.webapp配置无效 #3126 .addResourceLocations(staticLocations.split(",")); } diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java index 0960fc3d..f7aff806 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java @@ -5,6 +5,7 @@ import java.util.List; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor; +import org.jeecg.common.config.TenantContext; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.util.oConvertUtils; import org.mybatis.spring.annotation.MapperScan; diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/TenantContext.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/TenantContext.java index 136c195a..9546ba68 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/TenantContext.java +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/TenantContext.java @@ -1,25 +1,25 @@ -package org.jeecg.config.mybatis; - -import lombok.extern.slf4j.Slf4j; - -/** - * 多租户 tenant_id存储器 - * @author: jeecg-boot - */ -@Slf4j -public class TenantContext { - private static ThreadLocal currentTenant = new ThreadLocal<>(); - - public static void setTenant(String tenant) { - log.debug(" setting tenant to " + tenant); - currentTenant.set(tenant); - } - - public static String getTenant() { - return currentTenant.get(); - } - - public static void clear(){ - currentTenant.remove(); - } -} \ No newline at end of file +//package org.jeecg.config.mybatis; +// +//import lombok.extern.slf4j.Slf4j; +// +///** +// * 多租户 tenant_id存储器 +// * @author: jeecg-boot +// */ +//@Slf4j +//public class TenantContext { +// private static ThreadLocal currentTenant = new ThreadLocal<>(); +// +// public static void setTenant(String tenant) { +// log.debug(" setting tenant to " + tenant); +// currentTenant.set(tenant); +// } +// +// public static String getTenant() { +// return currentTenant.get(); +// } +// +// public static void clear(){ +// currentTenant.remove(); +// } +//} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java index 6c203dc2..35502829 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroRealm.java @@ -10,6 +10,7 @@ import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection; import org.jeecg.common.api.CommonAPI; +import org.jeecg.common.config.TenantContext; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.system.vo.LoginUser; @@ -17,7 +18,6 @@ import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.common.util.TokenUtils; import org.jeecg.common.util.oConvertUtils; -import org.jeecg.config.mybatis.TenantContext; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/filters/JwtFilter.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/filters/JwtFilter.java index ca8de215..2e527c07 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/filters/JwtFilter.java +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/filters/JwtFilter.java @@ -3,10 +3,10 @@ package org.jeecg.config.shiro.filters; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter; +import org.jeecg.common.config.TenantContext; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.util.oConvertUtils; -import org.jeecg.config.mybatis.TenantContext; import org.jeecg.config.shiro.JwtToken; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/interceptor/SignAuthConfiguration.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/interceptor/SignAuthConfiguration.java index 137ecc58..0a5a3ea0 100644 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/interceptor/SignAuthConfiguration.java +++ b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/sign/interceptor/SignAuthConfiguration.java @@ -1,5 +1,9 @@ package org.jeecg.config.sign.interceptor; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.util.PathMatcherUtil; +import org.jeecg.common.util.SpringContextHolder; +import org.jeecg.config.JeecgBaseConfig; import org.jeecg.config.filter.RequestBodyReserveFilter; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; @@ -7,16 +11,19 @@ import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + /** * 签名 拦截器配置 * @author: jeecg-boot */ @Configuration public class SignAuthConfiguration implements WebMvcConfigurer { - public static String[] SIGN_URL_LIST = new String[]{"/sys/dict/getDictItems/*", "/sys/dict/loadDict/*", - "/sys/dict/loadDictOrderByValue/*", "/sys/dict/loadDictItem/*", "/sys/dict/loadTreeData", - "/sys/api/queryTableDictItemsByCode", "/sys/api/queryFilterTableDictInfo", "/sys/api/queryTableDictByKeys", - "/sys/api/translateDictFromTable", "/sys/api/translateDictFromTableByKeys"}; + @Resource + JeecgBaseConfig jeecgBaseConfig; + @Bean public SignAuthInterceptor signAuthInterceptor() { return new SignAuthInterceptor(); @@ -24,7 +31,17 @@ public class SignAuthConfiguration implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(signAuthInterceptor()).addPathPatterns(SIGN_URL_LIST); + //------------------------------------------------------------ + //查询需要进行签名拦截的接口 signUrls + String signUrls = jeecgBaseConfig.getSignUrls(); + String[] signUrlsArray = null; + if (StringUtils.isNotBlank(signUrls)) { + signUrlsArray = signUrls.split(","); + } else { + signUrlsArray = PathMatcherUtil.SIGN_URL_LIST; + } + //------------------------------------------------------------ + registry.addInterceptor(signAuthInterceptor()).addPathPatterns(signUrlsArray); } //update-begin-author:taoyan date:20220427 for: issues/I53J5E post请求X_SIGN签名拦截校验后报错, request body 为空 @@ -38,8 +55,18 @@ public class SignAuthConfiguration implements WebMvcConfigurer { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(requestBodyReserveFilter()); registration.setName("requestBodyReserveFilter"); + //------------------------------------------------------------ + //查询需要进行签名拦截的接口 signUrls + String signUrls = jeecgBaseConfig.getSignUrls(); + String[] signUrlsArray = null; + if (StringUtils.isNotBlank(signUrls)) { + signUrlsArray = signUrls.split(","); + } else { + signUrlsArray = PathMatcherUtil.SIGN_URL_LIST; + } + //------------------------------------------------------------ // 建议此处只添加post请求地址而不是所有的都需要走过滤器 - registration.addUrlPatterns(SIGN_URL_LIST); + registration.addUrlPatterns(signUrlsArray); return registration; } //update-end-author:taoyan date:20220427 for: issues/I53J5E post请求X_SIGN签名拦截校验后报错, request body 为空 diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/pom.xml b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/pom.xml deleted file mode 100644 index 1223bc93..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - org.jeecgframework.boot - jeecg-boot-base - 3.3.0 - - 4.0.0 - 公共模块 - jeecg-boot-base-tools - - - - - org.springframework.boot - spring-boot-starter-web - true - - - - org.springframework.boot - spring-boot-starter-data-redis - - - org.apache.commons - commons-pool2 - - - - cn.hutool - hutool-core - - - cn.hutool - hutool-crypto - - - - commons-beanutils - commons-beanutils - - - - \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/annotation/RabbitComponent.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/annotation/RabbitComponent.java deleted file mode 100644 index c5fa9bb2..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/annotation/RabbitComponent.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.jeecg.common.annotation; - -import org.springframework.core.annotation.AliasFor; -import org.springframework.stereotype.Component; - -import java.lang.annotation.*; - -/** - * @Author:zyf - * @Date:2019-07-31 10:43 - * @Description: 消息队列初始化注解 - **/ -@Documented -@Inherited -@Target({ElementType.TYPE}) -@Retention(RetentionPolicy.RUNTIME) -@Component -public @interface RabbitComponent { - @AliasFor( - annotation = Component.class - ) - String value(); -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/base/BaseMap.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/base/BaseMap.java deleted file mode 100644 index 644f2cf0..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/base/BaseMap.java +++ /dev/null @@ -1,144 +0,0 @@ -package org.jeecg.common.base; - - -import cn.hutool.core.util.ObjectUtil; - -import org.apache.commons.beanutils.ConvertUtils; - -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; - -/** -* BaseMap -* -* @author: scott -* @date: 2020/01/01 16:17 -*/ -public class BaseMap extends HashMap { - - private static final long serialVersionUID = 1L; - - - public BaseMap() { - - } - - public BaseMap(Map map) { - this.putAll(map); - } - - - @Override - public BaseMap put(String key, Object value) { - super.put(key, Optional.ofNullable(value).orElse("")); - return this; - } - - public BaseMap add(String key, Object value) { - super.put(key, Optional.ofNullable(value).orElse("")); - return this; - } - - @SuppressWarnings("unchecked") - public T get(String key) { - Object obj = super.get(key); - if (ObjectUtil.isNotEmpty(obj)) { - return (T) obj; - } else { - return null; - } - } - - @SuppressWarnings("unchecked") - public Boolean getBoolean(String key) { - Object obj = super.get(key); - if (ObjectUtil.isNotEmpty(obj)) { - return Boolean.valueOf(obj.toString()); - } else { - return false; - } - } - - public Long getLong(String key) { - Object v = get(key); - if (ObjectUtil.isNotEmpty(v)) { - return new Long(v.toString()); - } - return null; - } - - public Long[] getLongs(String key) { - Object v = get(key); - if (ObjectUtil.isNotEmpty(v)) { - return (Long[]) v; - } - return null; - } - - public List getListLong(String key) { - List list = get(key); - if (ObjectUtil.isNotEmpty(list)) { - return list.stream().map(e -> new Long(e)).collect(Collectors.toList()); - } else { - return null; - } - } - - public Long[] getLongIds(String key) { - Object ids = get(key); - if (ObjectUtil.isNotEmpty(ids)) { - return (Long[]) ConvertUtils.convert(ids.toString().split(","), Long.class); - } else { - return null; - } - } - - - public Integer getInt(String key, Integer def) { - Object v = get(key); - if (ObjectUtil.isNotEmpty(v)) { - return Integer.parseInt(v.toString()); - } else { - return def; - } - } - - public Integer getInt(String key) { - Object v = get(key); - if (ObjectUtil.isNotEmpty(v)) { - return Integer.parseInt(v.toString()); - } else { - return 0; - } - } - - public BigDecimal getBigDecimal(String key) { - Object v = get(key); - if (ObjectUtil.isNotEmpty(v)) { - return new BigDecimal(v.toString()); - } - return new BigDecimal("0"); - } - - - @SuppressWarnings("unchecked") - public T get(String key, T def) { - Object obj = super.get(key); - if (ObjectUtil.isEmpty(obj)) { - return def; - } - return (T) obj; - } - - public static BaseMap toBaseMap(Map obj) { - BaseMap map = new BaseMap(); - map.putAll(obj); - return map; - } - - -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/CommonConfig.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/CommonConfig.java deleted file mode 100644 index b9a3a71b..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/CommonConfig.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.jeecg.common.config; - -import org.jeecg.common.util.SpringContextHolder; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -/** -* SpringContextHolder注册用 -* -* @author: scott -* @date: 2020/01/01 16:00 -*/ -@Configuration -public class CommonConfig { - - /** - * Spring上下文工具配置 - * - * @return - */ - @Bean - @ConditionalOnMissingBean(SpringContextHolder.class) - public SpringContextHolder springContextHolder() { - SpringContextHolder holder = new SpringContextHolder(); - return holder; - } -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/TransmitUserTokenFilter.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/TransmitUserTokenFilter.java deleted file mode 100644 index 77e3d153..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/TransmitUserTokenFilter.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.jeecg.common.config.mqtoken; - -import java.io.IOException; - -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; - -/** - * 存放临时令牌Token到线程上下文 - * - * 供队列、定时任务 feign调用使用(解决无会话Token问题) - * @author zyf - */ -public class TransmitUserTokenFilter implements Filter { - - private static String X_ACCESS_TOKEN="X-Access-Token"; - - public TransmitUserTokenFilter() { - } - - @Override - public void init(FilterConfig filterConfig) throws ServletException { - } - - @Override - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { - this.initUserInfo((HttpServletRequest) request); - chain.doFilter(request, response); - } - - private void initUserInfo(HttpServletRequest request) { - String token = request.getHeader(X_ACCESS_TOKEN); - if (token!=null) { - try { - //将Token放入当前线程上下文中 - UserTokenContext.setToken(token); - } catch (Exception e) { - //e.printStackTrace(); - } - } - } - - @Override - public void destroy() { - } -} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/UserTokenContext.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/UserTokenContext.java deleted file mode 100644 index eb8e99bb..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/config/mqtoken/UserTokenContext.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.jeecg.common.config.mqtoken; - - -/** - * 用户Token线程上下文 - * - * 供队列、定时任务 feign调用使用(解决无会话Token问题) - * @author zyf - */ -public class UserTokenContext { - - /** - * 当前线程的TOKEN副本 - */ - private static ThreadLocal userToken = new ThreadLocal(); - - public UserTokenContext() { - } - - public static String getToken(){ - return userToken.get(); - } - - public static void setToken(String token){ - userToken.set(token); - } - - public static void remove() { - userToken.remove(); - } -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/constant/CacheConstant.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/constant/CacheConstant.java deleted file mode 100644 index 778dc3b4..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/constant/CacheConstant.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.jeecg.common.constant; - -/** - * @author: huangxutao - * @date: 2019-06-14 - * @description: 缓存常量 - */ -public interface CacheConstant { - - /** - * 字典信息缓存(含禁用的字典项) - */ - public static final String SYS_DICT_CACHE = "sys:cache:dict"; - - /** - * 字典信息缓存 status为有效的 - */ - public static final String SYS_ENABLE_DICT_CACHE = "sys:cache:dictEnable"; - /** - * 表字典信息缓存 - */ - public static final String SYS_DICT_TABLE_CACHE = "sys:cache:dictTable"; - public static final String SYS_DICT_TABLE_BY_KEYS_CACHE = SYS_DICT_TABLE_CACHE + "ByKeys"; - - /** - * 数据权限配置缓存 - */ - public static final String SYS_DATA_PERMISSIONS_CACHE = "sys:cache:permission:datarules"; - - /** - * 缓存用户信息【加密】 - */ - public static final String SYS_USERS_CACHE = "sys:cache:encrypt:user"; - - /** - * 全部部门信息缓存 - */ - public static final String SYS_DEPARTS_CACHE = "sys:cache:depart:alldata"; - - - /** - * 全部部门ids缓存 - */ - public static final String SYS_DEPART_IDS_CACHE = "sys:cache:depart:allids"; - - - /** - * 测试缓存key - */ - public static final String TEST_DEMO_CACHE = "test:demo"; - - /** - * 字典信息缓存 - */ - public static final String SYS_DYNAMICDB_CACHE = "sys:cache:dbconnect:dynamic:"; - - /** - * gateway路由缓存 - */ - public static final String GATEWAY_ROUTES = "sys:cache:cloud:gateway_routes"; - - - /** - * gateway路由 reload key - */ - public static final String ROUTE_JVM_RELOAD_TOPIC = "gateway_jvm_route_reload_topic"; - - /** - * TODO 冗余代码 待删除 - *插件商城排行榜 - */ - public static final String PLUGIN_MALL_RANKING = "pluginMall::rankingList"; - /** - * TODO 冗余代码 待删除 - *插件商城排行榜 - */ - public static final String PLUGIN_MALL_PAGE_LIST = "pluginMall::queryPageList"; - - - /** - * online列表页配置信息缓存key - */ - public static final String ONLINE_LIST = "sys:cache:online:list"; - - /** - * online表单页配置信息缓存key - */ - public static final String ONLINE_FORM = "sys:cache:online:form"; - - /** - * online报表 - */ - public static final String ONLINE_RP = "sys:cache:online:rp"; - - /** - * online图表 - */ - public static final String ONLINE_GRAPH = "sys:cache:online:graph"; - /** - * 拖拽页面信息缓存 - */ - public static final String DRAG_PAGE_CACHE = "drag:cache:page"; -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/constant/GlobalConstants.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/constant/GlobalConstants.java deleted file mode 100644 index bcecdc73..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/constant/GlobalConstants.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.jeecg.common.constant; - -/** -* @Description: GlobalConstants -* @author: scott -* @date: 2020/01/01 16:01 -*/ -public class GlobalConstants { - - /** - * 业务处理器beanName传递参数 - */ - public static final String HANDLER_NAME = "handlerName"; - /** - * 路由刷新触发器 - */ - public static final String LODER_ROUDER_HANDLER = "loderRouderHandler"; - - /** - * redis消息通道名称 - */ - public static final String REDIS_TOPIC_NAME="jeecg_redis_topic"; -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/enums/SentinelErrorInfoEnum.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/enums/SentinelErrorInfoEnum.java deleted file mode 100644 index 654e06bc..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/enums/SentinelErrorInfoEnum.java +++ /dev/null @@ -1,108 +0,0 @@ -package org.jeecg.common.enums; - -/** - * @Description: 异常错误信息定义 - * @author: zyf - * @date: 2022/4/14 10:05 - */ -public enum SentinelErrorInfoEnum { - - /** - * 流控异常 - */ - FlowException("访问频繁,请稍候再试"), - - /** - * 热点参数异常 - */ - ParamFlowException("热点参数限流"), - - /** - * 系统规则限流或降级 - */ - SystemBlockException("系统规则限流或降级"), - - /** - * 授权规则不通过 - */ - AuthorityException("授权规则不通过"), - - /** - * 授权规则不通过 - */ - UnknownError("未知异常"), - - /** - * 服务降级 - */ - DegradeException("服务降级"); - - - /** - * 错误信息 - */ - String error; - - /** - * 错误代码 - */ - Integer code; - - - public String getError() { - return error; - } - - public void setError(String error) { - this.error = error; - } - - public Integer getCode() { - return code; - } - - public void setCode(Integer code) { - this.code = code; - } - - /** - * 构造器 - * - * @param error 错误信息 - * @param code 错误代码 - */ - SentinelErrorInfoEnum(String error, Integer code) { - this.error = error; - this.code = code; - } - - /** - * 构造器 - * - * @param error 错误信息 - */ - SentinelErrorInfoEnum(String error) { - this.error = error; - this.code = 500; - } - - /** - * 根据异常名称匹配 - * - * @param throwable 异常 - * @return String 错误信息 - */ - public static SentinelErrorInfoEnum getErrorByException(Throwable throwable) { - if(throwable==null){ - return null; - } - - String exceptionClass = throwable.getClass().getSimpleName(); - for (SentinelErrorInfoEnum e : SentinelErrorInfoEnum.values()) { - if (exceptionClass.equals(e.name())) { - return e; - } - } - return null; - } -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/exception/JeecgCloudException.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/exception/JeecgCloudException.java deleted file mode 100644 index b7623ae9..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/exception/JeecgCloudException.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.jeecg.common.exception; - -/** - * @Description: jeecg-cloud自定义异常 - * @Author: zyf - * @Date: 2022-05-30 - */ -public class JeecgCloudException extends RuntimeException { - private static final long serialVersionUID = 1L; - - public JeecgCloudException(String message) { - super(message); - } - -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/client/JeecgRedisClient.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/client/JeecgRedisClient.java deleted file mode 100644 index 8f1d84b3..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/client/JeecgRedisClient.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.jeecg.common.modules.redis.client; - -import org.jeecg.common.base.BaseMap; -import org.jeecg.common.constant.GlobalConstants; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.core.RedisTemplate; - -import javax.annotation.Resource; - -/** -* @Description: redis客户端 -* @author: scott -* @date: 2020/01/01 16:01 -*/ -@Configuration -public class JeecgRedisClient { - - @Resource - private RedisTemplate redisTemplate; - - - /** - * 发送消息 - * - * @param handlerName - * @param params - */ - public void sendMessage(String handlerName, BaseMap params) { - params.put(GlobalConstants.HANDLER_NAME, handlerName); - redisTemplate.convertAndSend(GlobalConstants.REDIS_TOPIC_NAME, params); - } - - -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/config/RedisConfig.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/config/RedisConfig.java deleted file mode 100644 index f72622b8..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/config/RedisConfig.java +++ /dev/null @@ -1,141 +0,0 @@ -package org.jeecg.common.modules.redis.config; - -import com.fasterxml.jackson.annotation.JsonAutoDetect; -import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; -import com.fasterxml.jackson.annotation.PropertyAccessor; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping; -import lombok.extern.slf4j.Slf4j; - -import org.jeecg.common.constant.CacheConstant; -import org.jeecg.common.constant.GlobalConstants; - -import org.jeecg.common.modules.redis.receiver.RedisReceiver; -import org.jeecg.common.modules.redis.writer.JeecgRedisCacheWriter; -import org.springframework.cache.CacheManager; -import org.springframework.cache.annotation.CachingConfigurerSupport; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.cache.RedisCacheConfiguration; -import org.springframework.data.redis.cache.RedisCacheManager; -import org.springframework.data.redis.cache.RedisCacheWriter; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.listener.ChannelTopic; -import org.springframework.data.redis.listener.RedisMessageListenerContainer; -import org.springframework.data.redis.listener.adapter.MessageListenerAdapter; -import org.springframework.data.redis.serializer.*; - -import javax.annotation.Resource; -import java.time.Duration; - -import static java.util.Collections.singletonMap; - -/** -* 开启缓存支持 -* @author zyf - * @Return: -*/ -@Slf4j -@EnableCaching -@Configuration -public class RedisConfig extends CachingConfigurerSupport { - - @Resource - private LettuceConnectionFactory lettuceConnectionFactory; - - /** - * RedisTemplate配置 - * @param lettuceConnectionFactory - * @return - */ - @Bean - public RedisTemplate redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) { - log.info(" --- redis config init --- "); - Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = jacksonSerializer(); - RedisTemplate redisTemplate = new RedisTemplate(); - redisTemplate.setConnectionFactory(lettuceConnectionFactory); - RedisSerializer stringSerializer = new StringRedisSerializer(); - - // key序列化 - redisTemplate.setKeySerializer(stringSerializer); - // value序列化 - redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); - // Hash key序列化 - redisTemplate.setHashKeySerializer(stringSerializer); - // Hash value序列化 - redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); - redisTemplate.afterPropertiesSet(); - return redisTemplate; - } - - /** - * 缓存配置管理器 - * - * @param factory - * @return - */ - @Bean - public CacheManager cacheManager(LettuceConnectionFactory factory) { - Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = jacksonSerializer(); - // 配置序列化(解决乱码的问题),并且配置缓存默认有效期 6小时 - RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofHours(6)); - RedisCacheConfiguration redisCacheConfiguration = config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())) - .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)); - //.disableCachingNullValues(); - - // 以锁写入的方式创建RedisCacheWriter对象 - //update-begin-author:taoyan date:20210316 for:注解CacheEvict根据key删除redis支持通配符* - RedisCacheWriter writer = new JeecgRedisCacheWriter(factory, Duration.ofMillis(50L)); - //RedisCacheWriter.lockingRedisCacheWriter(factory); - // 创建默认缓存配置对象 - /* 默认配置,设置缓存有效期 1小时*/ - //RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofHours(1)); - // 自定义配置test:demo 的超时时间为 5分钟 - RedisCacheManager cacheManager = RedisCacheManager.builder(writer).cacheDefaults(redisCacheConfiguration) - .withInitialCacheConfigurations(singletonMap(CacheConstant.SYS_DICT_TABLE_CACHE, - RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(10)).disableCachingNullValues() - .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)))) - .withInitialCacheConfigurations(singletonMap(CacheConstant.TEST_DEMO_CACHE, RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(5)).disableCachingNullValues())) - .withInitialCacheConfigurations(singletonMap(CacheConstant.PLUGIN_MALL_RANKING, RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofHours(24)).disableCachingNullValues())) - .withInitialCacheConfigurations(singletonMap(CacheConstant.PLUGIN_MALL_PAGE_LIST, RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofHours(24)).disableCachingNullValues())) - .transactionAware().build(); - //update-end-author:taoyan date:20210316 for:注解CacheEvict根据key删除redis支持通配符* - return cacheManager; - } - - /** - * redis 监听配置 - * - * @param redisConnectionFactory redis 配置 - * @return - */ - @Bean - public RedisMessageListenerContainer redisContainer(RedisConnectionFactory redisConnectionFactory, RedisReceiver redisReceiver, MessageListenerAdapter commonListenerAdapter) { - RedisMessageListenerContainer container = new RedisMessageListenerContainer(); - container.setConnectionFactory(redisConnectionFactory); - container.addMessageListener(commonListenerAdapter, new ChannelTopic(GlobalConstants.REDIS_TOPIC_NAME)); - return container; - } - - - @Bean - MessageListenerAdapter commonListenerAdapter(RedisReceiver redisReceiver) { - MessageListenerAdapter messageListenerAdapter = new MessageListenerAdapter(redisReceiver, "onMessage"); - messageListenerAdapter.setSerializer(jacksonSerializer()); - return messageListenerAdapter; - } - - private Jackson2JsonRedisSerializer jacksonSerializer() { - Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); - objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); - jackson2JsonRedisSerializer.setObjectMapper(objectMapper); - return jackson2JsonRedisSerializer; - } - - -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/listener/JeecgRedisListener.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/listener/JeecgRedisListener.java deleted file mode 100644 index 400a96e1..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/listener/JeecgRedisListener.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.jeecg.common.modules.redis.listener; - -import org.jeecg.common.base.BaseMap; - -/** - * @Description: 自定义消息监听 - * @author: scott - * @date: 2020/01/01 16:02 - */ -public interface JeecgRedisListener { - /** - * 接受消息 - * - * @param message - */ - void onMessage(BaseMap message); - -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/receiver/RedisReceiver.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/receiver/RedisReceiver.java deleted file mode 100644 index b1632ca4..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/receiver/RedisReceiver.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.jeecg.common.modules.redis.receiver; - - -import cn.hutool.core.util.ObjectUtil; -import lombok.Data; -import org.jeecg.common.base.BaseMap; -import org.jeecg.common.constant.GlobalConstants; -import org.jeecg.common.modules.redis.listener.JeecgRedisListener; -import org.jeecg.common.util.SpringContextHolder; -import org.springframework.stereotype.Component; - -/** - * @author zyf - */ -@Component -@Data -public class RedisReceiver { - - - /** - * 接受消息并调用业务逻辑处理器 - * - * @param params - */ - public void onMessage(BaseMap params) { - Object handlerName = params.get(GlobalConstants.HANDLER_NAME); - JeecgRedisListener messageListener = SpringContextHolder.getHandler(handlerName.toString(), JeecgRedisListener.class); - if (ObjectUtil.isNotEmpty(messageListener)) { - messageListener.onMessage(params); - } - } - -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/writer/JeecgRedisCacheWriter.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/writer/JeecgRedisCacheWriter.java deleted file mode 100644 index 3c4b41ce..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/modules/redis/writer/JeecgRedisCacheWriter.java +++ /dev/null @@ -1,250 +0,0 @@ -package org.jeecg.common.modules.redis.writer; - -import java.nio.charset.StandardCharsets; -import java.time.Duration; -import java.util.Collections; -import java.util.Optional; -import java.util.Set; -import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; -import java.util.function.Function; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.dao.PessimisticLockingFailureException; -import org.springframework.data.redis.cache.CacheStatistics; -import org.springframework.data.redis.cache.CacheStatisticsCollector; -import org.springframework.data.redis.cache.RedisCacheWriter; -import org.springframework.data.redis.connection.RedisConnection; -import org.springframework.data.redis.connection.RedisConnectionFactory; -import org.springframework.data.redis.connection.RedisStringCommands.SetOption; -import org.springframework.data.redis.core.types.Expiration; -import org.springframework.lang.Nullable; -import org.springframework.util.Assert; - -/** -* 该类参照 DefaultRedisCacheWriter 重写了 remove 方法实现通配符*删除 -* -* @author: scott -* @date: 2020/01/01 16:18 -*/ -@Slf4j -public class JeecgRedisCacheWriter implements RedisCacheWriter { - - private final RedisConnectionFactory connectionFactory; - private final Duration sleepTime; - - public JeecgRedisCacheWriter(RedisConnectionFactory connectionFactory) { - this(connectionFactory, Duration.ZERO); - } - - public JeecgRedisCacheWriter(RedisConnectionFactory connectionFactory, Duration sleepTime) { - Assert.notNull(connectionFactory, "ConnectionFactory must not be null!"); - Assert.notNull(sleepTime, "SleepTime must not be null!"); - this.connectionFactory = connectionFactory; - this.sleepTime = sleepTime; - } - - @Override - public void put(String name, byte[] key, byte[] value, @Nullable Duration ttl) { - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(key, "Key must not be null!"); - Assert.notNull(value, "Value must not be null!"); - this.execute(name, (connection) -> { - if (shouldExpireWithin(ttl)) { - connection.set(key, value, Expiration.from(ttl.toMillis(), TimeUnit.MILLISECONDS), SetOption.upsert()); - } else { - connection.set(key, value); - } - - return "OK"; - }); - } - - @Override - public byte[] get(String name, byte[] key) { - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(key, "Key must not be null!"); - return (byte[])this.execute(name, (connection) -> { - return connection.get(key); - }); - } - - @Override - public byte[] putIfAbsent(String name, byte[] key, byte[] value, @Nullable Duration ttl) { - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(key, "Key must not be null!"); - Assert.notNull(value, "Value must not be null!"); - return (byte[])this.execute(name, (connection) -> { - if (this.isLockingCacheWriter()) { - this.doLock(name, connection); - } - - Object var7; - try { - boolean put; - if (shouldExpireWithin(ttl)) { - put = connection.set(key, value, Expiration.from(ttl), SetOption.ifAbsent()); - } else { - put = connection.setNX(key, value); - } - - if (!put) { - byte[] var11 = connection.get(key); - return var11; - } - - var7 = null; - } finally { - if (this.isLockingCacheWriter()) { - this.doUnlock(name, connection); - } - - } - - return (byte[])var7; - }); - } - - @Override - public void remove(String name, byte[] key) { - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(key, "Key must not be null!"); - String keyString = new String(key); - log.info("redis remove key:" + keyString); - String keyIsAll = "*"; - if(keyString!=null && keyString.endsWith(keyIsAll)){ - execute(name, connection -> { - // 获取某个前缀所拥有的所有的键,某个前缀开头,后面肯定是* - Set keys = connection.keys(key); - int delNum = 0; - for (byte[] keyByte : keys) { - delNum += connection.del(keyByte); - } - return delNum; - }); - }else{ - this.execute(name, (connection) -> { - return connection.del(new byte[][]{key}); - }); - } - } - - @Override - public void clean(String name, byte[] pattern) { - Assert.notNull(name, "Name must not be null!"); - Assert.notNull(pattern, "Pattern must not be null!"); - this.execute(name, (connection) -> { - boolean wasLocked = false; - - try { - if (this.isLockingCacheWriter()) { - this.doLock(name, connection); - wasLocked = true; - } - - byte[][] keys = (byte[][])((Set)Optional.ofNullable(connection.keys(pattern)).orElse(Collections.emptySet())).toArray(new byte[0][]); - if (keys.length > 0) { - connection.del(keys); - } - } finally { - if (wasLocked && this.isLockingCacheWriter()) { - this.doUnlock(name, connection); - } - - } - - return "OK"; - }); - } - - void lock(String name) { - this.execute(name, (connection) -> { - return this.doLock(name, connection); - }); - } - - void unlock(String name) { - this.executeLockFree((connection) -> { - this.doUnlock(name, connection); - }); - } - - private Boolean doLock(String name, RedisConnection connection) { - return connection.setNX(createCacheLockKey(name), new byte[0]); - } - - private Long doUnlock(String name, RedisConnection connection) { - return connection.del(new byte[][]{createCacheLockKey(name)}); - } - - boolean doCheckLock(String name, RedisConnection connection) { - return connection.exists(createCacheLockKey(name)); - } - - private boolean isLockingCacheWriter() { - return !this.sleepTime.isZero() && !this.sleepTime.isNegative(); - } - - private T execute(String name, Function callback) { - RedisConnection connection = this.connectionFactory.getConnection(); - - try { - this.checkAndPotentiallyWaitUntilUnlocked(name, connection); - return callback.apply(connection); - } finally { - connection.close(); - } - - } - - private void executeLockFree(Consumer callback) { - RedisConnection connection = this.connectionFactory.getConnection(); - - try { - callback.accept(connection); - } finally { - connection.close(); - } - - } - - private void checkAndPotentiallyWaitUntilUnlocked(String name, RedisConnection connection) { - if (this.isLockingCacheWriter()) { - try { - while(this.doCheckLock(name, connection)) { - Thread.sleep(this.sleepTime.toMillis()); - } - - } catch (InterruptedException var4) { - Thread.currentThread().interrupt(); - throw new PessimisticLockingFailureException(String.format("Interrupted while waiting to unlock cache %s", name), var4); - } - } - } - - private static boolean shouldExpireWithin(@Nullable Duration ttl) { - return ttl != null && !ttl.isZero() && !ttl.isNegative(); - } - - private static byte[] createCacheLockKey(String name) { - return (name + "~lock").getBytes(StandardCharsets.UTF_8); - } - - //update-begin-author:zyf date:20220216 for:升级springboot版本到2.4.0+以后需要实现的方法* - private final CacheStatisticsCollector statistics = CacheStatisticsCollector.create(); - @Override - public CacheStatistics getCacheStatistics(String cacheName) { - return statistics.getCacheStatistics(cacheName); - } - - @Override - public void clearStatistics(String name) { - - } - - @Override - public RedisCacheWriter withStatisticsCollector(CacheStatisticsCollector cacheStatisticsCollector) { - return null; - } - //update-begin-author:zyf date:20220216 for:升级springboot版本到2.4.0+以后需要实现的方法* -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/util/RedisUtil.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/util/RedisUtil.java deleted file mode 100644 index 9f82be8a..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/util/RedisUtil.java +++ /dev/null @@ -1,613 +0,0 @@ -package org.jeecg.common.util; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.Cursor; -import org.springframework.data.redis.core.RedisCallback; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.core.ScanOptions; -import org.springframework.stereotype.Component; - -import java.util.*; -import java.util.concurrent.TimeUnit; - -/** - * redis 工具类 - * @Author Scott - * - */ -@Component -public class RedisUtil { - - @Autowired - private RedisTemplate redisTemplate; - - /** - * 指定缓存失效时间 - * - * @param key 键 - * @param time 时间(秒) - * @return - */ - public boolean expire(String key, long time) { - try { - if (time > 0) { - redisTemplate.expire(key, time, TimeUnit.SECONDS); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 根据key 获取过期时间 - * - * @param key 键 不能为null - * @return 时间(秒) 返回0代表为永久有效 - */ - public long getExpire(String key) { - return redisTemplate.getExpire(key, TimeUnit.SECONDS); - } - - /** - * 判断key是否存在 - * - * @param key 键 - * @return true 存在 false不存在 - */ - public boolean hasKey(String key) { - try { - return redisTemplate.hasKey(key); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 删除缓存 - * - * @param key 可以传一个值 或多个 - */ - @SuppressWarnings("unchecked") - public void del(String... key) { - if (key != null && key.length > 0) { - if (key.length == 1) { - redisTemplate.delete(key[0]); - } else { - //springboot2.4后用法 - redisTemplate.delete(Arrays.asList(key)); - } - } - } - - // ============================String============================= - /** - * 普通缓存获取 - * - * @param key 键 - * @return 值 - */ - public Object get(String key) { - return key == null ? null : redisTemplate.opsForValue().get(key); - } - - /** - * 普通缓存放入 - * - * @param key 键 - * @param value 值 - * @return true成功 false失败 - */ - public boolean set(String key, Object value) { - try { - redisTemplate.opsForValue().set(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - - } - - /** - * 普通缓存放入并设置时间 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 - * @return true成功 false 失败 - */ - public boolean set(String key, Object value, long time) { - try { - if (time > 0) { - redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS); - } else { - set(key, value); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 递增 - * - * @param key 键 - * @param by 要增加几(大于0) - * @return - */ - public long incr(String key, long delta) { - if (delta < 0) { - throw new RuntimeException("递增因子必须大于0"); - } - return redisTemplate.opsForValue().increment(key, delta); - } - - /** - * 递减 - * - * @param key 键 - * @param by 要减少几(小于0) - * @return - */ - public long decr(String key, long delta) { - if (delta < 0) { - throw new RuntimeException("递减因子必须大于0"); - } - return redisTemplate.opsForValue().increment(key, -delta); - } - - // ================================Map================================= - /** - * HashGet - * - * @param key 键 不能为null - * @param item 项 不能为null - * @return 值 - */ - public Object hget(String key, String item) { - return redisTemplate.opsForHash().get(key, item); - } - - /** - * 获取hashKey对应的所有键值 - * - * @param key 键 - * @return 对应的多个键值 - */ - public Map hmget(String key) { - return redisTemplate.opsForHash().entries(key); - } - - /** - * HashSet - * - * @param key 键 - * @param map 对应多个键值 - * @return true 成功 false 失败 - */ - public boolean hmset(String key, Map map) { - try { - redisTemplate.opsForHash().putAll(key, map); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * HashSet 并设置时间 - * - * @param key 键 - * @param map 对应多个键值 - * @param time 时间(秒) - * @return true成功 false失败 - */ - public boolean hmset(String key, Map map, long time) { - try { - redisTemplate.opsForHash().putAll(key, map); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 - * @param value 值 - * @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value) { - try { - redisTemplate.opsForHash().put(key, item, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 向一张hash表中放入数据,如果不存在将创建 - * - * @param key 键 - * @param item 项 - * @param value 值 - * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 - * @return true 成功 false失败 - */ - public boolean hset(String key, String item, Object value, long time) { - try { - redisTemplate.opsForHash().put(key, item, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 删除hash表中的值 - * - * @param key 键 不能为null - * @param item 项 可以使多个 不能为null - */ - public void hdel(String key, Object... item) { - redisTemplate.opsForHash().delete(key, item); - } - - /** - * 判断hash表中是否有该项的值 - * - * @param key 键 不能为null - * @param item 项 不能为null - * @return true 存在 false不存在 - */ - public boolean hHasKey(String key, String item) { - return redisTemplate.opsForHash().hasKey(key, item); - } - - /** - * hash递增 如果不存在,就会创建一个 并把新增后的值返回 - * - * @param key 键 - * @param item 项 - * @param by 要增加几(大于0) - * @return - */ - public double hincr(String key, String item, double by) { - return redisTemplate.opsForHash().increment(key, item, by); - } - - /** - * hash递减 - * - * @param key 键 - * @param item 项 - * @param by 要减少记(小于0) - * @return - */ - public double hdecr(String key, String item, double by) { - return redisTemplate.opsForHash().increment(key, item, -by); - } - - // ============================set============================= - /** - * 根据key获取Set中的所有值 - * - * @param key 键 - * @return - */ - public Set sGet(String key) { - try { - return redisTemplate.opsForSet().members(key); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 根据value从一个set中查询,是否存在 - * - * @param key 键 - * @param value 值 - * @return true 存在 false不存在 - */ - public boolean sHasKey(String key, Object value) { - try { - return redisTemplate.opsForSet().isMember(key, value); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将数据放入set缓存 - * - * @param key 键 - * @param values 值 可以是多个 - * @return 成功个数 - */ - public long sSet(String key, Object... values) { - try { - return redisTemplate.opsForSet().add(key, values); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 将set数据放入缓存 - * - * @param key 键 - * @param time 时间(秒) - * @param values 值 可以是多个 - * @return 成功个数 - */ - public long sSetAndTime(String key, long time, Object... values) { - try { - Long count = redisTemplate.opsForSet().add(key, values); - if (time > 0) { - expire(key, time); - } - return count; - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 获取set缓存的长度 - * - * @param key 键 - * @return - */ - public long sGetSetSize(String key) { - try { - return redisTemplate.opsForSet().size(key); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 移除值为value的 - * - * @param key 键 - * @param values 值 可以是多个 - * @return 移除的个数 - */ - public long setRemove(String key, Object... values) { - try { - Long count = redisTemplate.opsForSet().remove(key, values); - return count; - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - // ===============================list================================= - - /** - * 获取list缓存的内容 - * - * @param key 键 - * @param start 开始 - * @param end 结束 0 到 -1代表所有值 - * @return - */ - public List lGet(String key, long start, long end) { - try { - return redisTemplate.opsForList().range(key, start, end); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 获取list缓存的长度 - * - * @param key 键 - * @return - */ - public long lGetListSize(String key) { - try { - return redisTemplate.opsForList().size(key); - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 通过索引 获取list中的值 - * - * @param key 键 - * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 - * @return - */ - public Object lGetIndex(String key, long index) { - try { - return redisTemplate.opsForList().index(key, index); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) - * @return - */ - public boolean lSet(String key, Object value) { - try { - redisTemplate.opsForList().rightPush(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) - * @return - */ - public boolean lSet(String key, Object value, long time) { - try { - redisTemplate.opsForList().rightPush(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) - * @return - */ - public boolean lSet(String key, List value) { - try { - redisTemplate.opsForList().rightPushAll(key, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 将list放入缓存 - * - * @param key 键 - * @param value 值 - * @param time 时间(秒) - * @return - */ - public boolean lSet(String key, List value, long time) { - try { - redisTemplate.opsForList().rightPushAll(key, value); - if (time > 0) { - expire(key, time); - } - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 根据索引修改list中的某条数据 - * - * @param key 键 - * @param index 索引 - * @param value 值 - * @return - */ - public boolean lUpdateIndex(String key, long index, Object value) { - try { - redisTemplate.opsForList().set(key, index, value); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - /** - * 移除N个值为value - * - * @param key 键 - * @param count 移除多少个 - * @param value 值 - * @return 移除的个数 - */ - public long lRemove(String key, long count, Object value) { - try { - Long remove = redisTemplate.opsForList().remove(key, count, value); - return remove; - } catch (Exception e) { - e.printStackTrace(); - return 0; - } - } - - /** - * 获取指定前缀的一系列key - * 使用scan命令代替keys, Redis是单线程处理,keys命令在KEY数量较多时, - * 操作效率极低【时间复杂度为O(N)】,该命令一旦执行会严重阻塞线上其它命令的正常请求 - * @param keyPrefix - * @return - */ - private Set keys(String keyPrefix) { - String realKey = keyPrefix + "*"; - - try { - return redisTemplate.execute((RedisCallback>) connection -> { - Set binaryKeys = new HashSet<>(); - //springboot2.4后用法 - Cursor cursor = connection.scan(ScanOptions.scanOptions().match(realKey).count(Integer.MAX_VALUE).build()); - while (cursor.hasNext()) { - binaryKeys.add(new String(cursor.next())); - } - - return binaryKeys; - }); - } catch (Throwable e) { - e.printStackTrace(); - } - - return null; - } - - /** - * 删除指定前缀的一系列key - * @param keyPrefix - */ - public void removeAll(String keyPrefix) { - try { - Set keys = keys(keyPrefix); - redisTemplate.delete(keys); - } catch (Throwable e) { - e.printStackTrace(); - } - } -} diff --git a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/util/SpringContextHolder.java b/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/util/SpringContextHolder.java deleted file mode 100644 index 15140f84..00000000 --- a/jeecg-boot/jeecg-boot-base/jeecg-boot-base-tools/src/main/java/org/jeecg/common/util/SpringContextHolder.java +++ /dev/null @@ -1,81 +0,0 @@ - -package org.jeecg.common.util; - -import cn.hutool.core.util.ObjectUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; - -/** - * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. - * - * @author zyf - */ -@Slf4j -public class SpringContextHolder implements ApplicationContextAware { - private static ApplicationContext applicationContext; - - /** - * 实现ApplicationContextAware接口的context注入函数, 将其存入静态变量. - */ - @Override - public void setApplicationContext(ApplicationContext applicationContext) { - // NOSONAR - SpringContextHolder.applicationContext = applicationContext; - } - - /** - * 取得存储在静态变量中的ApplicationContext. - */ - public static ApplicationContext getApplicationContext() { - checkApplicationContext(); - return applicationContext; - } - - /** - * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型. - */ - public static T getBean(String name) { - checkApplicationContext(); - return (T) applicationContext.getBean(name); - } - - /** - * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型. - */ - public static T getHandler(String name, Class cls) { - T t = null; - if (ObjectUtil.isNotEmpty(name)) { - checkApplicationContext(); - try { - t = applicationContext.getBean(name, cls); - } catch (Exception e) { - log.warn("Customize redis listener handle [ " + name + " ], does not exist!"); - } - } - return t; - } - - - /** - * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型. - */ - public static T getBean(Class clazz) { - checkApplicationContext(); - return applicationContext.getBean(clazz); - } - - /** - * 清除applicationContext静态变量. - */ - public static void cleanApplicationContext() { - applicationContext = null; - } - - private static void checkApplicationContext() { - if (applicationContext == null) { - throw new IllegalStateException("applicaitonContext未注入,请在applicationContext.xml中定义SpringContextHolder"); - } - } - -} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-base/pom.xml b/jeecg-boot/jeecg-boot-base/pom.xml index d2f506ba..effa0b00 100644 --- a/jeecg-boot/jeecg-boot-base/pom.xml +++ b/jeecg-boot/jeecg-boot-base/pom.xml @@ -5,7 +5,7 @@ jeecg-boot-parent org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 @@ -15,7 +15,6 @@ jeecg-boot-base-api jeecg-boot-base-core - jeecg-boot-base-tools diff --git a/jeecg-boot/jeecg-boot-module-demo/pom.xml b/jeecg-boot/jeecg-boot-module-demo/pom.xml index fb326904..c654042b 100644 --- a/jeecg-boot/jeecg-boot-module-demo/pom.xml +++ b/jeecg-boot/jeecg-boot-module-demo/pom.xml @@ -5,7 +5,7 @@ jeecg-boot-parent org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 @@ -18,30 +18,4 @@ - - - SpringCloud - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - org.jeecgframework.boot - jeecg-boot-starter-cloud - - - org.jeecgframework.boot - jeecg-boot-starter-job - - - - - \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-demo/src/main/java/org/jeecg/JeecgDemoCloudApplication.java b/jeecg-boot/jeecg-boot-module-demo/src/main/java/org/jeecg/JeecgDemoCloudApplication.java deleted file mode 100644 index 696db878..00000000 --- a/jeecg-boot/jeecg-boot-module-demo/src/main/java/org/jeecg/JeecgDemoCloudApplication.java +++ /dev/null @@ -1,35 +0,0 @@ -//package org.jeecg; -// -//import org.jeecg.common.base.BaseMap; -//import org.jeecg.common.constant.GlobalConstants; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.boot.CommandLineRunner; -//import org.springframework.boot.SpringApplication; -//import org.springframework.boot.autoconfigure.SpringBootApplication; -//import org.springframework.cloud.openfeign.EnableFeignClients; -//import org.springframework.data.redis.core.RedisTemplate; -// -//@SpringBootApplication -//@EnableFeignClients -//public class JeecgDemoCloudApplication implements CommandLineRunner { -// @Autowired -// private RedisTemplate redisTemplate; -// -// public static void main(String[] args) { -// SpringApplication.run(JeecgDemoCloudApplication.class, args); -// } -// -// /** -// * 启动的时候,触发下gateway网关刷新 -// * -// * 解决: 先启动gateway后启动服务,Swagger接口文档访问不通的问题 -// * @param args -// */ -// @Override -// public void run(String... args) { -// BaseMap params = new BaseMap(); -// params.put(GlobalConstants.HANDLER_NAME, GlobalConstants.LODER_ROUDER_HANDLER); -// //刷新网关 -// redisTemplate.convertAndSend(GlobalConstants.REDIS_TOPIC_NAME, params); -// } -//} diff --git a/jeecg-boot/jeecg-boot-module-demo/src/main/resources/application.yml b/jeecg-boot/jeecg-boot-module-demo/src/main/resources/application.yml deleted file mode 100644 index d2d16d60..00000000 --- a/jeecg-boot/jeecg-boot-module-demo/src/main/resources/application.yml +++ /dev/null @@ -1,5 +0,0 @@ -server: - port: 7002 -spring: - application: - name: jeecg-demo \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/Dockerfile b/jeecg-boot/jeecg-boot-module-system/Dockerfile index 71a1da4a..912ee039 100644 --- a/jeecg-boot/jeecg-boot-module-system/Dockerfile +++ b/jeecg-boot/jeecg-boot-module-system/Dockerfile @@ -11,6 +11,6 @@ WORKDIR /jeecg-boot EXPOSE 8080 ADD ./src/main/resources/jeecg ./config/jeecg -ADD ./target/jeecg-boot-module-system-3.3.0.jar ./ +ADD ./target/jeecg-boot-module-system-3.4.0.jar ./ -CMD sleep 60;java -Djava.security.egd=file:/dev/./urandom -jar jeecg-boot-module-system-3.3.0.jar \ No newline at end of file +CMD sleep 60;java -Djava.security.egd=file:/dev/./urandom -jar jeecg-boot-module-system-3.4.0.jar \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/pom.xml b/jeecg-boot/jeecg-boot-module-system/pom.xml index 6e55c8da..730bb0c9 100644 --- a/jeecg-boot/jeecg-boot-module-system/pom.xml +++ b/jeecg-boot/jeecg-boot-module-system/pom.xml @@ -4,31 +4,12 @@ org.jeecgframework.boot jeecg-boot-parent - 3.3.0 + 3.4.0 4.0.0 jeecg-boot-module-system - - - aliyun - aliyun Repository - https://maven.aliyun.com/repository/public - - false - - - - jeecg - jeecg Repository - https://maven.jeecg.org/nexus/content/repositories/jeecg - - false - - - - org.jeecgframework.boot @@ -74,32 +55,4 @@ - - - - - SpringCloud - - - - src/main/resources - true - - - application.yml - application-*.yml - - - - src/main/java - - **/*.xml - **/*.json - **/*.ftl - - - - - - diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgSystemApplication.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgSystemApplication.java index 5ab81d47..5dd72be0 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgSystemApplication.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgSystemApplication.java @@ -15,14 +15,12 @@ import java.net.InetAddress; import java.net.UnknownHostException; /** -* 单体启动类(采用此类启动为单体模式) -* 特别提醒: -* 1.需要集成mongodb请删除 exclude={MongoAutoConfiguration.class} -* 2.切换微服务 勾选profile的SpringCloud,这个类就无法启动,启动会报错 +* 单体启动类 +* 报错提醒: 未集成mongo报错,可以打开启动类上面的注释 exclude={MongoAutoConfiguration.class} */ @Slf4j @SpringBootApplication -@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class}) +//@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class}) public class JeecgSystemApplication extends SpringBootServletInitializer { @Override diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java index 18341cf8..08c36951 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/LoginController.java @@ -48,6 +48,8 @@ public class LoginController { @Autowired private ISysUserService sysUserService; @Autowired + private ISysPermissionService sysPermissionService; + @Autowired private SysBaseApiImpl sysBaseApi; @Autowired private ISysLogService logService; @@ -492,6 +494,17 @@ public class LoginController { } return res; } + + + /** + * 切换菜单表为vue3的表 + */ + @GetMapping(value = "/switchVue3Menu") + public Result switchVue3Menu(HttpServletResponse response) { + Result res = new Result(); + sysPermissionService.switchVue3Menu(); + return res; + } /** * app登录 diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java index 58bd3310..0d544425 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysPermissionMapper.java @@ -25,6 +25,14 @@ public interface SysPermissionMapper extends BaseMapper { * @return */ public List queryListByParentId(@Param("parentId") String parentId); + + /** + * 切换vue3菜单 + */ + @Update("alter table sys_permission rename to sys_permission_v2") + public void backupVue2Menu(); + @Update("alter table sys_permission_v3 rename to sys_permission") + public void changeVue3Menu(); /** * 根据用户查询用户权限 diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java index 14ed0bb7..f75076cc 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysPermissionService.java @@ -18,7 +18,11 @@ import com.baomidou.mybatisplus.extension.service.IService; * @since 2018-12-21 */ public interface ISysPermissionService extends IService { - + /** + * 切换vue3菜单 + */ + public void switchVue3Menu(); + /** * 通过父id查询菜单 * @param parentId 父id diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java index f40c1639..3ebac88b 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysPermissionServiceImpl.java @@ -60,6 +60,12 @@ public class SysPermissionServiceImpl extends ServiceImpl - - - jeecg-boot-starter - org.jeecgframework.boot - 3.3.0 - - 4.0.0 - jeecg-boot-starter-cloud - - - - org.jeecgframework.boot - jeecg-system-cloud-api - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-config - - - - org.springframework.cloud - spring-cloud-starter-openfeign - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-sentinel - - - - com.alibaba.csp - sentinel-datasource-nacos - - - - - - org.springframework.cloud - spring-cloud-starter-bootstrap - - - - org.springframework.cloud - spring-cloud-starter-loadbalancer - - - - - - \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/config/FeignConfig.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/config/FeignConfig.java deleted file mode 100644 index ec7aa84a..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/config/FeignConfig.java +++ /dev/null @@ -1,195 +0,0 @@ -package org.jeecg.config; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.SortedMap; - -import javax.servlet.http.HttpServletRequest; - -import org.jeecg.common.constant.CommonConstant; -import org.jeecg.common.util.DateUtils; -import org.jeecg.common.util.PathMatcherUtil; -import org.jeecg.common.config.mqtoken.UserTokenContext; -import org.jeecg.config.mybatis.TenantContext; -import org.jeecg.config.sign.interceptor.SignAuthConfiguration; -import org.jeecg.config.sign.util.HttpUtils; -import org.jeecg.config.sign.util.SignUtil; -import org.springframework.beans.factory.ObjectFactory; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.http.HttpMessageConverters; -import org.springframework.cloud.openfeign.FeignAutoConfiguration; -import org.springframework.cloud.openfeign.support.SpringDecoder; -import org.springframework.cloud.openfeign.support.SpringEncoder; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.Scope; -import org.springframework.http.MediaType; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; -import com.alibaba.fastjson.support.config.FastJsonConfig; -import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; -import com.alibaba.fastjson.support.springfox.SwaggerJsonSerializer; - -import feign.Feign; -import feign.Logger; -import feign.RequestInterceptor; -import feign.codec.Decoder; -import feign.codec.Encoder; -import feign.form.spring.SpringFormEncoder; -import lombok.extern.slf4j.Slf4j; - -/** - * @Description: FeignConfig - * @author: JeecgBoot - */ -@ConditionalOnClass(Feign.class) -@AutoConfigureBefore(FeignAutoConfiguration.class) -@Slf4j -@Configuration -public class FeignConfig { - - /** - * 设置feign header参数 - * 【X_ACCESS_TOKEN】【X_SIGN】【X_TIMESTAMP】 - * @return - */ - @Bean - public RequestInterceptor requestInterceptor() { - return requestTemplate -> { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - if (null != attributes) { - HttpServletRequest request = attributes.getRequest(); - log.debug("Feign request: {}", request.getRequestURI()); - // 将token信息放入header中 - String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN); - if(token==null || "".equals(token)){ - token = request.getParameter("token"); - } - log.info("Feign Login Request token: {}", token); - requestTemplate.header(CommonConstant.X_ACCESS_TOKEN, token); - - //update-begin-author:taoyan date:2022-6-23 for: issues/I5AO20 多租户微服务之间调用找不到tenant-id(自定义页面) - // 将tenantId信息放入header中 - String tenantId = request.getHeader(CommonConstant.TENANT_ID); - if(tenantId==null || "".equals(tenantId)){ - tenantId = request.getParameter(CommonConstant.TENANT_ID); - } - log.info("Feign Login Request tenantId: {}", tenantId); - requestTemplate.header(CommonConstant.TENANT_ID, tenantId); - //update-end-author:taoyan date:2022-6-23 for: issues/I5AO20 多租户微服务之间调用找不到tenant-id(自定义页面) - - }else{ - String token = UserTokenContext.getToken(); - log.info("Feign no Login token: {}", token); - requestTemplate.header(CommonConstant.X_ACCESS_TOKEN, token); - - //update-begin-author:taoyan date:2022-6-23 for: issues/I5AO20 多租户微服务之间调用找不到tenant-id(自定义页面) - String tenantId = TenantContext.getTenant(); - log.info("Feign no Login tenantId: {}", tenantId); - requestTemplate.header(CommonConstant.TENANT_ID, tenantId); - //update-end-author:taoyan date:2022-6-23 for: issues/I5AO20 多租户微服务之间调用找不到tenant-id(自定义页面) - } - - //================================================================================================================ - //针对特殊接口,进行加签验证 ——根据URL地址过滤请求 【字典表参数签名验证】 - if (PathMatcherUtil.matches(Arrays.asList(SignAuthConfiguration.SIGN_URL_LIST),requestTemplate.path())) { - try { - log.info("============================ [begin] fegin starter url ============================"); - log.info(requestTemplate.path()); - log.info(requestTemplate.method()); - String queryLine = requestTemplate.queryLine(); - if(queryLine!=null && queryLine.startsWith("?")){ - queryLine = queryLine.substring(1); - } - log.info(queryLine); - if(requestTemplate.body()!=null){ - log.info(new String(requestTemplate.body())); - } - SortedMap allParams = HttpUtils.getAllParams(requestTemplate.path(),queryLine,requestTemplate.body(),requestTemplate.method()); - String sign = SignUtil.getParamsSign(allParams); - log.info(" Feign request params sign: {}",sign); - log.info("============================ [end] fegin starter url ============================"); - requestTemplate.header(CommonConstant.X_SIGN, sign); - //update-begin--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯 - requestTemplate.header(CommonConstant.X_TIMESTAMP, String.valueOf(System.currentTimeMillis())); - //update-end--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯 - } catch (IOException e) { - e.printStackTrace(); - } - } - //================================================================================================================ - }; - } - - - - /** - * Feign 客户端的日志记录,默认级别为NONE - * Logger.Level 的具体级别如下: - * NONE:不记录任何信息 - * BASIC:仅记录请求方法、URL以及响应状态码和执行时间 - * HEADERS:除了记录 BASIC级别的信息外,还会记录请求和响应的头信息 - * FULL:记录所有请求与响应的明细,包括头信息、请求体、元数据 - */ - @Bean - Logger.Level feignLoggerLevel() { - return Logger.Level.FULL; - } - - /** - * Feign支持文件上传 - * @param messageConverters - * @return - */ - @Bean - @Primary - @Scope("prototype") - public Encoder multipartFormEncoder(ObjectFactory messageConverters) { - return new SpringFormEncoder(new SpringEncoder(messageConverters)); - } - - // update-begin--Author:sunjianlei Date:20210604 for: 给 Feign 添加 FastJson 的解析支持 ---------- - @Bean - public Encoder feignEncoder() { - return new SpringEncoder(feignHttpMessageConverter()); - } - - @Bean - public Decoder feignDecoder() { - return new SpringDecoder(feignHttpMessageConverter()); - } - - /** - * 设置解码器为fastjson - * - * @return - */ - private ObjectFactory feignHttpMessageConverter() { - final HttpMessageConverters httpMessageConverters = new HttpMessageConverters(this.getFastJsonConverter()); - return () -> httpMessageConverters; - } - - private FastJsonHttpMessageConverter getFastJsonConverter() { - FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); - - List supportedMediaTypes = new ArrayList<>(); - MediaType mediaTypeJson = MediaType.valueOf(MediaType.APPLICATION_JSON_VALUE); - supportedMediaTypes.add(mediaTypeJson); - converter.setSupportedMediaTypes(supportedMediaTypes); - FastJsonConfig config = new FastJsonConfig(); - config.getSerializeConfig().put(JSON.class, new SwaggerJsonSerializer()); - config.setSerializerFeatures(SerializerFeature.DisableCircularReferenceDetect); - converter.setFastJsonConfig(config); - - return converter; - } - // update-end--Author:sunjianlei Date:20210604 for: 给 Feign 添加 FastJson 的解析支持 ---------- - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/config/GwCorsFilter.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/config/GwCorsFilter.java deleted file mode 100644 index 89762e1d..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/config/GwCorsFilter.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.jeecg.starter.cloud.config; - -/** - * @Description: 跨域设置 (升级SpringBoot2.6.6) - * @author: zyf - * @date: 2022/02/21 - * @version: V1.0 - */ -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.reactive.CorsWebFilter; -import org.springframework.web.util.pattern.PathPatternParser; - -@Configuration -public class GwCorsFilter { - - @Bean - public CorsWebFilter corsFilter() { - CorsConfiguration config = new CorsConfiguration(); - config.setAllowCredentials(true); - config.addAllowedOriginPattern("*"); - config.addAllowedHeader("*"); - config.addAllowedMethod("*"); - config.setMaxAge(18000L); - org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource source = - new org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource(new PathPatternParser()); - source.registerCorsConfiguration("/**", config); - return new CorsWebFilter(source); - } -} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/config/PersonBeanConfiguration.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/config/PersonBeanConfiguration.java deleted file mode 100644 index 596dafa2..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/config/PersonBeanConfiguration.java +++ /dev/null @@ -1,24 +0,0 @@ -//package org.jeecg.starter.cloud.config; -// -//import feign.Client; -//import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -//import org.springframework.cloud.netflix.ribbon.SpringClientFactory; -//import org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory; -//import org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient; -//import org.springframework.context.annotation.Bean; -//import org.springframework.context.annotation.Configuration; -// -//@Configuration -//public class PersonBeanConfiguration { -// -// /** -// * 创建FeignClient -// */ -// @Bean -// @ConditionalOnMissingBean -// public Client feignClient(CachingSpringLoadBalancerFactory cachingFactory, -// SpringClientFactory clientFactory) { -// return new LoadBalancerFeignClient(new Client.Default(null, null), -// cachingFactory, clientFactory); -// } -//} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/feign/IJeecgFeignService.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/feign/IJeecgFeignService.java deleted file mode 100644 index c75e4ba6..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/feign/IJeecgFeignService.java +++ /dev/null @@ -1,6 +0,0 @@ -//package org.jeecg.starter.cloud.feign; -// -//public interface IJeecgFeignService { -// -// T newInstance(Class apiType, String name); -//} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/feign/impl/JeecgFeignService.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/feign/impl/JeecgFeignService.java deleted file mode 100644 index 4d4ca5ea..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/feign/impl/JeecgFeignService.java +++ /dev/null @@ -1,60 +0,0 @@ -//package org.jeecg.starter.cloud.feign.impl; -// -//import feign.*; -//import feign.codec.Decoder; -//import feign.codec.Encoder; -//import lombok.extern.slf4j.Slf4j; -//import org.jeecg.common.constant.CommonConstant; -//import org.jeecg.starter.cloud.feign.IJeecgFeignService; -//import org.springframework.boot.autoconfigure.AutoConfigureBefore; -//import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -//import org.springframework.cloud.openfeign.FeignAutoConfiguration; -//import org.springframework.cloud.openfeign.FeignClientsConfiguration; -//import org.springframework.context.annotation.Import; -//import org.springframework.stereotype.Service; -//import org.springframework.web.context.request.RequestContextHolder; -//import org.springframework.web.context.request.ServletRequestAttributes; -// -//import javax.servlet.http.HttpServletRequest; -// -//@Service -//@Slf4j -//@ConditionalOnClass(Feign.class) -//@AutoConfigureBefore(FeignAutoConfiguration.class) -//@Import(FeignClientsConfiguration.class) -//public class JeecgFeignService implements IJeecgFeignService { -// -// -// //Feign 原生构造器 -// Feign.Builder builder; -// -// //创建构造器 -// public JeecgFeignService(Decoder decoder, Encoder encoder, Client client, Contract contract) { -// this.builder = Feign.builder() -// .client(client) -// .encoder(encoder) -// .decoder(decoder) -// .contract(contract); -// -// builder.requestInterceptor(requestTemplate -> { -// ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); -// if (null != attributes) { -// HttpServletRequest request = attributes.getRequest(); -// log.info("Feign request: {}", request.getRequestURI()); -// // 将token信息放入header中 -// String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN); -// if(token==null){ -// token = request.getParameter("token"); -// } -// log.info("Feign request token: {}", token); -// requestTemplate.header(CommonConstant.X_ACCESS_TOKEN, token); -// } -// }); -// } -// -// -// @Override -// public T newInstance(Class clientClass, String serviceName) { -// return builder.target(clientClass, String.format("http://%s/", serviceName)); -// } -//} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/handler/CustomSentinelExceptionHandler.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/handler/CustomSentinelExceptionHandler.java deleted file mode 100644 index 23189c11..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/handler/CustomSentinelExceptionHandler.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.jeecg.starter.cloud.handler; - -import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.BlockExceptionHandler; -import com.alibaba.csp.sentinel.slots.block.BlockException; -import com.alibaba.csp.sentinel.slots.block.authority.AuthorityException; -import com.alibaba.csp.sentinel.slots.block.degrade.DegradeException; -import com.alibaba.csp.sentinel.slots.block.flow.FlowException; -import com.alibaba.csp.sentinel.slots.block.flow.param.ParamFlowException; -import com.alibaba.csp.sentinel.slots.system.SystemBlockException; -import org.springframework.context.annotation.Configuration; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * @Description: 全局Sentinel自定义信息处理(需要启动Sentinel客户端) - * @author: zyf - * @date: 2022/02/18 - * @version: V1.0 - */ -@Configuration -public class CustomSentinelExceptionHandler implements BlockExceptionHandler { - - @Override - public void handle(HttpServletRequest request, HttpServletResponse response, BlockException ex) throws Exception { - - String msg = null; - - if (ex instanceof FlowException) { - msg = "访问频繁,请稍候再试"; - - } else if (ex instanceof DegradeException) { - msg = "系统降级"; - - } else if (ex instanceof ParamFlowException) { - msg = "热点参数限流"; - - } else if (ex instanceof SystemBlockException) { - msg = "系统规则限流或降级"; - - } else if (ex instanceof AuthorityException) { - msg = "授权规则不通过"; - - } else { - msg = "未知限流降级"; - } - // http状态码 - response.setStatus(200); - response.setCharacterEncoding("utf-8"); - response.setHeader("Content-Type", "application/json;charset=utf-8"); - response.setContentType("application/json;charset=utf-8"); - response.getWriter().write("{\"code\":500,\"message\":"+msg+"}"); - } - -} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java deleted file mode 100644 index 63ba43a0..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/java/org/jeecg/starter/cloud/interceptor/DefaultRequestOriginParser.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.jeecg.starter.cloud.interceptor; - -import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; -import org.apache.commons.lang3.StringUtils; -import org.jeecg.common.util.IpUtils; -import org.springframework.stereotype.Component; - -import javax.servlet.http.HttpServletRequest; - -/** - * 【示例】sentinel ip和参数授权规则拦截器(黑名单白名单) - * 1. 有参数origin的时候走参数拦截规则 - * 2. 当参数为空时走ip拦截模式 - * - * @author zyf - */ -@Component -public class DefaultRequestOriginParser implements RequestOriginParser { - @Override - public String parseOrigin(HttpServletRequest request) { - //基于请求参数,origin对应授权规则中的流控应用名称,也可通过getHeader传参 - String origin = request.getParameter("origin"); - if (StringUtils.isNotEmpty(origin)) { - return origin; - } else { - //当参数为空使用ip拦截模式 - String ip = IpUtils.getIpAddr(request); - return ip; - } - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/resources/bootstrap.yml b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/resources/bootstrap.yml deleted file mode 100644 index ce253f70..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,59 +0,0 @@ -spring: - #升级SpringBoot2.6.6,允许循环依赖 - main: - allow-circular-references: true - profiles: - # 当前激活环境 - active: '@profile.name@' - cloud: - #配置Bus id(远程推送事件) - bus: - id: ${spring.application.name}:${server.port} - nacos: - config: - # Nacos 认证用户 - username: @config.username@ - # Nacos 认证密码 - password: @config.password@ - # 命名空间 常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等 - namespace: @config.namespace@ - # 配置中心地址 - server-addr: @config.server-addr@ - # 配置对应的分组 - group: @config.group@ - # 配置文件后缀 - file-extension: yaml - prefix: @prefix.name@ - # 支持多个共享 Data Id 的配置,优先级小于extension-configs,自定义 Data Id 配置 属性是个集合,内部由 Config POJO 组成。Config 有 3 个属性,分别是 dataId, group 以及 refresh -# shared-configs[0]: -# data-id: @prefix.name@-sharding.yaml #分库分表配置 -# group: @config.group@ -# refresh: false -# shared-configs[1]: -# data-id: @prefix.name@-common.yaml # 配置文件名-Data Id -# group: @config.group@ # 默认为DEFAULT_GROUP -# refresh: false # 是否动态刷新,默认为false - discovery: - namespace: @config.namespace@ - server-addr: @config.server-addr@ - watch: - enabled: false -# feign启用sentinel -feign: - sentinel: - enabled: true - okhttp: - enabled: true - httpclient: - enabled: false - client: - config: - default: - #不设置connectTimeout会导致readTimeout设置不生效 - connectTimeout: 5000 - readTimeout: 10000 - compression: - request: - enabled: true - response: - enabled: true \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/pom.xml b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/pom.xml deleted file mode 100644 index f13893db..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - jeecg-boot-starter - org.jeecgframework.boot - 3.3.0 - - 4.0.0 - jeecg-boot-starter-job - jeecg-boot-starter-定时任务 - - - com.xuxueli - xxl-job-core - ${xxl-job-core.version} - - - - \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java deleted file mode 100644 index d6cf990f..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/com/xxl/job/core/executor/XxlJobExecutor.java +++ /dev/null @@ -1,228 +0,0 @@ -package com.xxl.job.core.executor; - -import com.xxl.job.core.biz.AdminBiz; -import com.xxl.job.core.biz.client.AdminBizClient; -import com.xxl.job.core.handler.IJobHandler; -import com.xxl.job.core.log.XxlJobFileAppender; -import com.xxl.job.core.server.EmbedServer; -import com.xxl.job.core.thread.JobLogFileCleanThread; -import com.xxl.job.core.thread.JobThread; -import com.xxl.job.core.thread.TriggerCallbackThread; -import com.xxl.job.core.util.IpUtil; -import com.xxl.job.core.util.NetUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -/** - * 重写目的修改默认端口9999为10000避免和网关冲突 - */ -public class XxlJobExecutor { - private static final Logger logger = LoggerFactory.getLogger(XxlJobExecutor.class); - - // ---------------------- param ---------------------- - private String adminAddresses; - private String accessToken; - private String appname; - private String address; - private String ip; - private int port; - private String logPath; - private int logRetentionDays; - - public void setAdminAddresses(String adminAddresses) { - this.adminAddresses = adminAddresses; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public void setAppname(String appname) { - this.appname = appname; - } - - public void setAddress(String address) { - this.address = address; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public void setPort(int port) { - this.port = port; - } - - public void setLogPath(String logPath) { - this.logPath = logPath; - } - - public void setLogRetentionDays(int logRetentionDays) { - this.logRetentionDays = logRetentionDays; - } - - - // ---------------------- start + stop ---------------------- - public void start() throws Exception { - - // init logpath - XxlJobFileAppender.initLogPath(logPath); - - // init invoker, admin-client - initAdminBizList(adminAddresses, accessToken); - - - // init JobLogFileCleanThread - JobLogFileCleanThread.getInstance().start(logRetentionDays); - - // init TriggerCallbackThread - TriggerCallbackThread.getInstance().start(); - - // init executor-server - initEmbedServer(address, ip, port, appname, accessToken); - } - - public void destroy() { - // destory executor-server - stopEmbedServer(); - - // destory jobThreadRepository - if (jobThreadRepository.size() > 0) { - for (Map.Entry item : jobThreadRepository.entrySet()) { - JobThread oldJobThread = removeJobThread(item.getKey(), "web container destroy and kill the job."); - // wait for job thread push result to callback queue - if (oldJobThread != null) { - try { - oldJobThread.join(); - } catch (InterruptedException e) { - logger.error(">>>>>>>>>>> xxl-job, JobThread destroy(join) error, jobId:{}", item.getKey(), e); - } - } - } - jobThreadRepository.clear(); - } - jobHandlerRepository.clear(); - - - // destory JobLogFileCleanThread - JobLogFileCleanThread.getInstance().toStop(); - - // destory TriggerCallbackThread - TriggerCallbackThread.getInstance().toStop(); - - } - - - // ---------------------- admin-client (rpc invoker) ---------------------- - private static List adminBizList; - - private void initAdminBizList(String adminAddresses, String accessToken) throws Exception { - if (adminAddresses != null && adminAddresses.trim().length() > 0) { - for (String address : adminAddresses.trim().split(",")) { - if (address != null && address.trim().length() > 0) { - - AdminBiz adminBiz = new AdminBizClient(address.trim(), accessToken); - - if (adminBizList == null) { - adminBizList = new ArrayList(); - } - adminBizList.add(adminBiz); - } - } - } - } - - public static List getAdminBizList() { - return adminBizList; - } - - // ---------------------- executor-server (rpc provider) ---------------------- - private EmbedServer embedServer = null; - - private void initEmbedServer(String address, String ip, int port, String appname, String accessToken) throws Exception { - - // fill ip port 修改默认端口 - port = port > 0 ? port : NetUtil.findAvailablePort(10000); - ip = (ip != null && ip.trim().length() > 0) ? ip : IpUtil.getIp(); - - // generate address - if (address == null || address.trim().length() == 0) { - String ip_port_address = IpUtil.getIpPort(ip, port); // registry-address:default use address to registry , otherwise use ip:port if address is null - address = "http://{ip_port}/".replace("{ip_port}", ip_port_address); - } - - // accessToken - if (accessToken == null || accessToken.trim().length() == 0) { - logger.warn(">>>>>>>>>>> xxl-job accessToken is empty. To ensure system security, please set the accessToken."); - } - - // start - embedServer = new EmbedServer(); - embedServer.start(address, port, appname, accessToken); - } - - private void stopEmbedServer() { - // stop provider factory - if (embedServer != null) { - try { - embedServer.stop(); - } catch (Exception e) { - logger.error(e.getMessage(), e); - } - } - } - - - // ---------------------- job handler repository ---------------------- - private static ConcurrentMap jobHandlerRepository = new ConcurrentHashMap(); - - public static IJobHandler loadJobHandler(String name) { - return jobHandlerRepository.get(name); - } - - public static IJobHandler registJobHandler(String name, IJobHandler jobHandler) { - logger.info(">>>>>>>>>>> xxl-job register jobhandler success, name:{}, jobHandler:{}", name, jobHandler); - return jobHandlerRepository.put(name, jobHandler); - } - - - // ---------------------- job thread repository ---------------------- - private static ConcurrentMap jobThreadRepository = new ConcurrentHashMap(); - - public static JobThread registJobThread(int jobId, IJobHandler handler, String removeOldReason) { - JobThread newJobThread = new JobThread(jobId, handler); - newJobThread.start(); - logger.info(">>>>>>>>>>> xxl-job regist JobThread success, jobId:{}, handler:{}", new Object[]{jobId, handler}); - - JobThread oldJobThread = jobThreadRepository.put(jobId, newJobThread); // putIfAbsent | oh my god, map's put method return the old value!!! - if (oldJobThread != null) { - oldJobThread.toStop(removeOldReason); - oldJobThread.interrupt(); - } - - return newJobThread; - } - - public static JobThread removeJobThread(int jobId, String removeOldReason) { - JobThread oldJobThread = jobThreadRepository.remove(jobId); - if (oldJobThread != null) { - oldJobThread.toStop(removeOldReason); - oldJobThread.interrupt(); - - return oldJobThread; - } - return null; - } - - public static JobThread loadJobThread(int jobId) { - JobThread jobThread = jobThreadRepository.get(jobId); - return jobThread; - } - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/annotation/EnableXxlJob.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/annotation/EnableXxlJob.java deleted file mode 100644 index 4a63f0e4..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/annotation/EnableXxlJob.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.jeecg.boot.starter.job.annotation; - -import org.jeecg.boot.starter.job.config.XxlJobConfiguration; -import org.springframework.context.annotation.Import; - -import java.lang.annotation.*; - -/** - * @author zyf - */ -@Target({ ElementType.TYPE }) -@Retention(RetentionPolicy.RUNTIME) -@Documented -@Inherited -@Import({ XxlJobConfiguration.class }) -public @interface EnableXxlJob { - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/config/XxlJobConfiguration.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/config/XxlJobConfiguration.java deleted file mode 100644 index 225b0a92..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/config/XxlJobConfiguration.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.jeecg.boot.starter.job.config; - -import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; -import lombok.extern.slf4j.Slf4j; -import org.jeecg.boot.starter.job.prop.XxlJobProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -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; - -/** - * 定时任务配置 - * - * @author jeecg - */ -@Slf4j -@Configuration -@EnableConfigurationProperties(value = XxlJobProperties.class) -@ConditionalOnProperty(value = "jeecg.xxljob.enabled", havingValue = "true", matchIfMissing = true) -public class XxlJobConfiguration { - - - @Autowired - private XxlJobProperties xxlJobProperties; - - //@Bean(initMethod = "start", destroyMethod = "destroy") - @Bean - @ConditionalOnClass() - public XxlJobSpringExecutor xxlJobExecutor() { - log.info(">>>>>>>>>>> xxl-job config init."); - //log.info(">>>> ip="+xxlJobProperties.getIp()+",Port="+xxlJobProperties.getPort()+",address="+xxlJobProperties.getAdminAddresses()); - XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); - xxlJobSpringExecutor.setAdminAddresses(xxlJobProperties.getAdminAddresses()); - xxlJobSpringExecutor.setAppname(xxlJobProperties.getAppname()); - //update-begin--Author:scott -- Date:20210305 -- for:system服务和demo服务有办法同时使用xxl-job吗 #2313--- - //xxlJobSpringExecutor.setIp(xxlJobProperties.getIp()); - //xxlJobSpringExecutor.setPort(xxlJobProperties.getPort()); - //update-end--Author:scott -- Date:20210305 -- for:system服务和demo服务有办法同时使用xxl-job吗 #2313--- - xxlJobSpringExecutor.setAccessToken(xxlJobProperties.getAccessToken()); - xxlJobSpringExecutor.setLogPath(xxlJobProperties.getLogPath()); - xxlJobSpringExecutor.setLogRetentionDays(xxlJobProperties.getLogRetentionDays()); - return xxlJobSpringExecutor; - } - - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/prop/XxlJobProperties.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/prop/XxlJobProperties.java deleted file mode 100644 index 3aad62c9..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/java/org/jeecg/boot/starter/job/prop/XxlJobProperties.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.jeecg.boot.starter.job.prop; - -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; - -@Data -@ConfigurationProperties(prefix = "jeecg.xxljob") -public class XxlJobProperties { - - - private String adminAddresses; - - - private String appname; - - - private String ip; - - - private int port; - - - private String accessToken; - - - private String logPath; - - - private int logRetentionDays; - - /** - * 是否开启xxljob - */ - private Boolean enable = true; -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/resources/META-INF/spring.factories b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/resources/META-INF/spring.factories deleted file mode 100644 index 913f95e0..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-job/src/main/resources/META-INF/spring.factories +++ /dev/null @@ -1,2 +0,0 @@ -org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -org.jeecg.boot.starter.job.config.XxlJobConfiguration \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/pom.xml b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/pom.xml deleted file mode 100644 index faa99b5a..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - jeecg-boot-starter - org.jeecgframework.boot - 3.3.0 - - 4.0.0 - jeecg-boot-starter-lock - jeecg-boot-starter-分布式锁 - - - org.jeecgframework.boot - jeecg-boot-base-tools - - - org.redisson - redisson - - - org.projectlombok - lombok - provided - - - org.apache.commons - commons-lang3 - - - org.springframework.boot - spring-boot-starter-aop - - - com.google.guava - guava - - - - \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/JLock.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/JLock.java deleted file mode 100644 index 3355da7a..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/JLock.java +++ /dev/null @@ -1,57 +0,0 @@ -package org.jeecg.boot.starter.lock.annotation; - -import org.jeecg.boot.starter.lock.enums.LockModel; - -import java.lang.annotation.*; - -/** - * Redisson分布式锁注解 - * - * @author zyf - * @date 2020-11-11 - */ -@Target({ElementType.TYPE, ElementType.METHOD}) -@Retention(RetentionPolicy.RUNTIME) -@Documented -@Inherited -public @interface JLock { - - /** - * 锁的模式:如果不设置,自动模式,当参数只有一个.使用 REENTRANT 参数多个 MULTIPLE - */ - LockModel lockModel() default LockModel.AUTO; - - /** - * 如果keys有多个,如果不设置,则使用 联锁 - * @return - */ - String[] lockKey() default {}; - - /** - * key的静态常量:当key的spel的值是LIST,数组时使用+号连接将会被spel认为这个变量是个字符串 - * @return - */ - String keyConstant() default ""; - - - /** - * 锁超时时间,默认30000毫秒 - * - * @return int - */ - long expireSeconds() default 30000L; - - /** - * 等待加锁超时时间,默认10000毫秒 -1 则表示一直等待 - * - * @return int - */ - long waitTime() default 10000L; - - /** - * 未取到锁时提示信息 - * - * @return - */ - String failMsg() default "获取锁失败,请稍后重试"; -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/JRepeat.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/JRepeat.java deleted file mode 100644 index 3651e20f..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/JRepeat.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.jeecg.boot.starter.lock.annotation; - -/** - * @author zyf - */ - -import java.lang.annotation.*; - -/** - * 防止重复提交的注解 - * - * @author 2019年6月18日 - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD}) -@Documented -public @interface JRepeat { - - /** - * 超时时间 - * - * @return - */ - int lockTime(); - - - /** - * redis 锁key的 - * - * @return redis 锁key - */ - String lockKey() default ""; - - - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/LockConstant.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/LockConstant.java deleted file mode 100644 index b457262a..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/annotation/LockConstant.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.jeecg.boot.starter.lock.annotation; - -/** - * @author zyf - * @date 2019/10/26 18:26 - */ - -/** - * 分布式锁枚举类 - * @author zyf - */ -public enum LockConstant { - /** - * 通用锁常量 - */ - COMMON("commonLock:", 1, 500, "请勿重复点击"); - /** - * 分布式锁前缀 - */ - private String keyPrefix; - /** - * 等到最大时间,强制获取锁 - */ - private int waitTime; - /** - * 锁失效时间 - */ - private int leaseTime; - /** - * 加锁提示 - */ - private String message; - - LockConstant(String keyPrefix, int waitTime, int leaseTime, String message) { - this.keyPrefix = keyPrefix; - this.waitTime = waitTime; - this.leaseTime = leaseTime; - this.message = message; - } - - public String getKeyPrefix() { - return keyPrefix; - } - - public void setKeyPrefix(String keyPrefix) { - this.keyPrefix = keyPrefix; - } - - public int getWaitTime() { - return waitTime; - } - - public void setWaitTime(int waitTime) { - this.waitTime = waitTime; - } - - public int getLeaseTime() { - return leaseTime; - } - - public void setLeaseTime(int leaseTime) { - this.leaseTime = leaseTime; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/BaseAspect.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/BaseAspect.java deleted file mode 100644 index ec5baf9b..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/BaseAspect.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.jeecg.boot.starter.lock.aspect; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.Expression; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author zyf - */ -@Slf4j -public class BaseAspect { - - /** - * 通过spring SpEL 获取参数 - * - * @param key 定义的key值 以#开头 例如:#user - * @param parameterNames 形参 - * @param values 形参值 - * @param keyConstant key的常亮 - * @return - */ - public List getValueBySpEL(String key, String[] parameterNames, Object[] values, String keyConstant) { - List keys = new ArrayList<>(); - if (!key.contains("#")) { - String s = "redis:lock:" + key + keyConstant; - log.debug("lockKey:" + s); - keys.add(s); - return keys; - } - //spel解析器 - ExpressionParser parser = new SpelExpressionParser(); - //spel上下文 - EvaluationContext context = new StandardEvaluationContext(); - for (int i = 0; i < parameterNames.length; i++) { - context.setVariable(parameterNames[i], values[i]); - } - Expression expression = parser.parseExpression(key); - Object value = expression.getValue(context); - if (value != null) { - if (value instanceof List) { - List value1 = (List) value; - for (Object o : value1) { - addKeys(keys, o, keyConstant); - } - } else if (value.getClass().isArray()) { - Object[] obj = (Object[]) value; - for (Object o : obj) { - addKeys(keys, o, keyConstant); - } - } else { - addKeys(keys, value, keyConstant); - } - } - log.info("表达式key={},value={}", key, keys); - return keys; - } - - private void addKeys(List keys, Object o, String keyConstant) { - keys.add("redis:lock:" + o.toString() + keyConstant); - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/DistributedLockHandler.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/DistributedLockHandler.java deleted file mode 100644 index c35cc931..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/DistributedLockHandler.java +++ /dev/null @@ -1,167 +0,0 @@ -package org.jeecg.boot.starter.lock.aspect; - -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.reflect.MethodSignature; -import org.jeecg.boot.starter.lock.annotation.JLock; -import org.jeecg.boot.starter.lock.enums.LockModel; -import org.redisson.RedissonMultiLock; -import org.redisson.RedissonRedLock; -import org.redisson.api.RLock; -import org.redisson.api.RedissonClient; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.LocalVariableTableParameterNameDiscoverer; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.Expression; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; - - -/** - * 分布式锁解析器 - * - * @author zyf - * @date 2020-11-11 - */ -@Slf4j -@Aspect -@Component -public class DistributedLockHandler extends BaseAspect{ - - - @Autowired(required = false) - private RedissonClient redissonClient; - - /** - * 切面环绕通知 - * - * @param joinPoint - * @param jLock - * @return Object - */ - @SneakyThrows - @Around("@annotation(jLock)") - public Object around(ProceedingJoinPoint joinPoint, JLock jLock) { - Object obj = null; - log.info("进入RedisLock环绕通知..."); - RLock rLock = getLock(joinPoint, jLock); - boolean res = false; - //获取超时时间 - long expireSeconds = jLock.expireSeconds(); - //等待多久,n秒内获取不到锁,则直接返回 - long waitTime = jLock.waitTime(); - //执行aop - if (rLock != null) { - try { - if (waitTime == -1) { - res = true; - //一直等待加锁 - rLock.lock(expireSeconds, TimeUnit.MILLISECONDS); - } else { - res = rLock.tryLock(waitTime, expireSeconds, TimeUnit.MILLISECONDS); - } - if (res) { - obj = joinPoint.proceed(); - } else { - log.error("获取锁异常"); - } - } finally { - if (res) { - rLock.unlock(); - } - } - } - log.info("结束RedisLock环绕通知..."); - return obj; - } - - @SneakyThrows - private RLock getLock(ProceedingJoinPoint joinPoint, JLock jLock) { - String[] keys = jLock.lockKey(); - if (keys.length == 0) { - throw new RuntimeException("keys不能为空"); - } - String[] parameterNames = new LocalVariableTableParameterNameDiscoverer().getParameterNames(((MethodSignature) joinPoint.getSignature()).getMethod()); - Object[] args = joinPoint.getArgs(); - - LockModel lockModel = jLock.lockModel(); - RLock rLock = null; - String keyConstant = jLock.keyConstant(); - if (lockModel.equals(LockModel.AUTO)) { - if (keys.length > 1) { - lockModel = LockModel.REDLOCK; - } else { - lockModel = LockModel.REENTRANT; - } - } - if (!lockModel.equals(LockModel.MULTIPLE) && !lockModel.equals(LockModel.REDLOCK) && keys.length > 1) { - throw new RuntimeException("参数有多个,锁模式为->" + lockModel.name() + ".无法锁定"); - } - switch (lockModel) { - case FAIR: - rLock = redissonClient.getFairLock(getValueBySpEL(keys[0], parameterNames, args, keyConstant).get(0)); - break; - case REDLOCK: - List rLocks = new ArrayList<>(); - for (String key : keys) { - List valueBySpEL = getValueBySpEL(key, parameterNames, args, keyConstant); - for (String s : valueBySpEL) { - rLocks.add(redissonClient.getLock(s)); - } - } - RLock[] locks = new RLock[rLocks.size()]; - int index = 0; - for (RLock r : rLocks) { - locks[index++] = r; - } - rLock = new RedissonRedLock(locks); - break; - case MULTIPLE: - rLocks = new ArrayList<>(); - - for (String key : keys) { - List valueBySpEL = getValueBySpEL(key, parameterNames, args, keyConstant); - for (String s : valueBySpEL) { - rLocks.add(redissonClient.getLock(s)); - } - } - locks = new RLock[rLocks.size()]; - index = 0; - for (RLock r : rLocks) { - locks[index++] = r; - } - rLock = new RedissonMultiLock(locks); - break; - case REENTRANT: - List valueBySpEL = getValueBySpEL(keys[0], parameterNames, args, keyConstant); - //如果spel表达式是数组或者LIST 则使用红锁 - if (valueBySpEL.size() == 1) { - rLock = redissonClient.getLock(valueBySpEL.get(0)); - } else { - locks = new RLock[valueBySpEL.size()]; - index = 0; - for (String s : valueBySpEL) { - locks[index++] = redissonClient.getLock(s); - } - rLock = new RedissonRedLock(locks); - } - break; - case READ: - rLock = redissonClient.getReadWriteLock(getValueBySpEL(keys[0], parameterNames, args, keyConstant).get(0)).readLock(); - break; - case WRITE: - rLock = redissonClient.getReadWriteLock(getValueBySpEL(keys[0], parameterNames, args, keyConstant).get(0)).writeLock(); - break; - } - return rLock; - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/RepeatSubmitAspect.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/RepeatSubmitAspect.java deleted file mode 100644 index d7eb932e..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/aspect/RepeatSubmitAspect.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.jeecg.boot.starter.lock.aspect; - -/** - * @author zyf - */ - -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.aspectj.lang.reflect.MethodSignature; -import org.jeecg.boot.starter.lock.annotation.JRepeat; -import org.jeecg.boot.starter.lock.client.RedissonLockClient; -import org.jeecg.common.exception.JeecgCloudException; -import org.springframework.core.LocalVariableTableParameterNameDiscoverer; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.util.Objects; -import java.util.concurrent.TimeUnit; - -/** - * 防止重复提交分布式锁拦截器 - * - * @author 2019年6月18日 - */ -@Aspect -@Component -public class RepeatSubmitAspect extends BaseAspect{ - - @Resource - private RedissonLockClient redissonLockClient; - - /*** - * 定义controller切入点拦截规则,拦截JRepeat注解的业务方法 - */ - @Pointcut("@annotation(jRepeat)") - public void pointCut(JRepeat jRepeat) { - } - - /** - * AOP分布式锁拦截 - * - * @param joinPoint - * @return - * @throws Exception - */ - @Around("pointCut(jRepeat)") - public Object repeatSubmit(ProceedingJoinPoint joinPoint,JRepeat jRepeat) throws Throwable { - String[] parameterNames = new LocalVariableTableParameterNameDiscoverer().getParameterNames(((MethodSignature) joinPoint.getSignature()).getMethod()); - if (Objects.nonNull(jRepeat)) { - // 获取参数 - Object[] args = joinPoint.getArgs(); - // 进行一些参数的处理,比如获取订单号,操作人id等 - StringBuffer lockKeyBuffer = new StringBuffer(); - String key =getValueBySpEL(jRepeat.lockKey(), parameterNames, args,"RepeatSubmit").get(0); - // 公平加锁,lockTime后锁自动释放 - boolean isLocked = false; - try { - isLocked = redissonLockClient.fairLock(key, TimeUnit.SECONDS, jRepeat.lockTime()); - // 如果成功获取到锁就继续执行 - if (isLocked) { - // 执行进程 - return joinPoint.proceed(); - } else { - // 未获取到锁 - throw new JeecgCloudException("请勿重复提交"); - } - } finally { - // 如果锁还存在,在方法执行完成后,释放锁 - if (isLocked) { - redissonLockClient.unlock(key); - } - } - } - - return joinPoint.proceed(); - } - - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/client/RedissonLockClient.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/client/RedissonLockClient.java deleted file mode 100644 index 746381c0..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/client/RedissonLockClient.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.jeecg.boot.starter.lock.client; - -import lombok.extern.slf4j.Slf4j; -import org.redisson.api.RLock; -import org.redisson.api.RedissonClient; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Component; - -import java.util.concurrent.TimeUnit; - -/** - * 分布式锁实现基于Redisson - * - * @author zyf - * @date 2020-11-11 - */ -@Slf4j -@Component -public class RedissonLockClient { - - @Autowired - private RedissonClient redissonClient; - - @Autowired - private RedisTemplate redisTemplate; - - /** - * 获取锁 - */ - public RLock getLock(String lockKey) { - return redissonClient.getLock(lockKey); - } - - /** - * 加锁操作 - * - * @return boolean - */ - public boolean tryLock(String lockName, long expireSeconds) { - return tryLock(lockName, 0, expireSeconds); - } - - - /** - * 加锁操作 - * - * @return boolean - */ - public boolean tryLock(String lockName, long waitTime, long expireSeconds) { - RLock rLock = getLock(lockName); - boolean getLock = false; - try { - getLock = rLock.tryLock(waitTime, expireSeconds, TimeUnit.SECONDS); - if (getLock) { - log.info("获取锁成功,lockName={}", lockName); - } else { - log.info("获取锁失败,lockName={}", lockName); - } - } catch (InterruptedException e) { - log.error("获取式锁异常,lockName=" + lockName, e); - getLock = false; - } - return getLock; - } - - - public boolean fairLock(String lockKey, TimeUnit unit, int leaseTime) { - RLock fairLock = redissonClient.getFairLock(lockKey); - try { - boolean existKey = existKey(lockKey); - // 已经存在了,就直接返回 - if (existKey) { - return false; - } - return fairLock.tryLock(3, leaseTime, unit); - } catch (InterruptedException e) { - e.printStackTrace(); - } - return false; - } - - public boolean existKey(String key) { - return redisTemplate.hasKey(key); - } - /** - * 锁lockKey - * - * @param lockKey - * @return - */ - public RLock lock(String lockKey) { - RLock lock = getLock(lockKey); - lock.lock(); - return lock; - } - - /** - * 锁lockKey - * - * @param lockKey - * @param leaseTime - * @return - */ - public RLock lock(String lockKey, long leaseTime) { - RLock lock = getLock(lockKey); - lock.lock(leaseTime, TimeUnit.SECONDS); - return lock; - } - - - /** - * 解锁 - * - * @param lockName 锁名称 - */ - public void unlock(String lockName) { - try { - redissonClient.getLock(lockName).unlock(); - } catch (Exception e) { - log.error("解锁异常,lockName=" + lockName, e); - } - } - - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/config/RedissonConfiguration.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/config/RedissonConfiguration.java deleted file mode 100644 index 5608055d..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/config/RedissonConfiguration.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.jeecg.boot.starter.lock.config; - -import lombok.extern.slf4j.Slf4j; -import org.jeecg.boot.starter.lock.core.RedissonManager; -import org.jeecg.boot.starter.lock.prop.RedissonProperties; -import org.redisson.api.RedissonClient; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - - -/** - * Redisson自动化配置 - * - * @author zyf - * @date 2020-11-11 - */ -@Slf4j -@Configuration -@ConditionalOnClass(RedissonProperties.class) -@EnableConfigurationProperties(RedissonProperties.class) -public class RedissonConfiguration { - - - - @Bean - @ConditionalOnMissingBean(RedissonClient.class) - public RedissonClient redissonClient(RedissonProperties redissonProperties) { - RedissonManager redissonManager = new RedissonManager(redissonProperties); - log.info("RedissonManager初始化完成,当前连接方式:" + redissonProperties.getType() + ",连接地址:" + redissonProperties.getAddress()); - return redissonManager.getRedisson(); - } - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/RedissonManager.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/RedissonManager.java deleted file mode 100644 index d67bd631..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/RedissonManager.java +++ /dev/null @@ -1,100 +0,0 @@ -package org.jeecg.boot.starter.lock.core; - - -import com.google.common.base.Preconditions; -import lombok.extern.slf4j.Slf4j; -import org.jeecg.boot.starter.lock.core.strategy.RedissonConfigStrategy; -import org.jeecg.boot.starter.lock.prop.RedissonProperties; -import org.jeecg.boot.starter.lock.core.strategy.impl.ClusterRedissonConfigStrategyImpl; -import org.jeecg.boot.starter.lock.core.strategy.impl.MasterslaveRedissonConfigStrategyImpl; -import org.jeecg.boot.starter.lock.core.strategy.impl.SentinelRedissonConfigStrategyImpl; -import org.jeecg.boot.starter.lock.core.strategy.impl.StandaloneRedissonConfigStrategyImpl; -import org.jeecg.boot.starter.lock.enums.RedisConnectionType; -import org.redisson.Redisson; -import org.redisson.config.Config; - - -/** - * Redisson配置管理器,用于初始化的redisson实例 - * - * @author zyf - * @date 2020-11-12 - */ -@Slf4j -public class RedissonManager { - - private Config config = new Config(); - - private Redisson redisson = null; - - public RedissonManager() { - } - - public RedissonManager(RedissonProperties redissonProperties) { - //装配开关 - Boolean enabled = redissonProperties.getEnabled(); - if (enabled) { - try { - config = RedissonConfigFactory.getInstance().createConfig(redissonProperties); - redisson = (Redisson) Redisson.create(config); - } catch (Exception e) { - log.error("Redisson初始化错误", e); - } - } - } - - public Redisson getRedisson() { - return redisson; - } - - /** - * Redisson连接方式配置工厂 - * 双重检查锁 - */ - static class RedissonConfigFactory { - - private RedissonConfigFactory() { - } - - private static volatile RedissonConfigFactory factory = null; - - public static RedissonConfigFactory getInstance() { - if (factory == null) { - synchronized (Object.class) { - if (factory == null) { - factory = new RedissonConfigFactory(); - } - } - } - return factory; - } - - /** - * 根据连接类型創建连接方式的配置 - * - * @param redissonProperties - * @return Config - */ - Config createConfig(RedissonProperties redissonProperties) { - Preconditions.checkNotNull(redissonProperties); - Preconditions.checkNotNull(redissonProperties.getAddress(), "redis地址未配置"); - RedisConnectionType connectionType = redissonProperties.getType(); - // 声明连接方式 - RedissonConfigStrategy redissonConfigStrategy; - if (connectionType.equals(RedisConnectionType.SENTINEL)) { - redissonConfigStrategy = new SentinelRedissonConfigStrategyImpl(); - } else if (connectionType.equals(RedisConnectionType.CLUSTER)) { - redissonConfigStrategy = new ClusterRedissonConfigStrategyImpl(); - } else if (connectionType.equals(RedisConnectionType.MASTERSLAVE)) { - redissonConfigStrategy = new MasterslaveRedissonConfigStrategyImpl(); - } else { - redissonConfigStrategy = new StandaloneRedissonConfigStrategyImpl(); - } - Preconditions.checkNotNull(redissonConfigStrategy, "连接方式创建异常"); - - return redissonConfigStrategy.createRedissonConfig(redissonProperties); - } - } - - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/RedissonConfigStrategy.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/RedissonConfigStrategy.java deleted file mode 100644 index 04d260e9..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/RedissonConfigStrategy.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.jeecg.boot.starter.lock.core.strategy; - -import org.jeecg.boot.starter.lock.prop.RedissonProperties; -import org.redisson.config.Config; - -/** - * Redisson配置构建接口 - * - * @author zyf - * @date 2020-11-11 - */ -public interface RedissonConfigStrategy { - - /** - * 根据不同的Redis配置策略创建对应的Config - * - * @param redissonProperties - * @return Config - */ - Config createRedissonConfig(RedissonProperties redissonProperties); -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/ClusterRedissonConfigStrategyImpl.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/ClusterRedissonConfigStrategyImpl.java deleted file mode 100644 index ffccf64e..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/ClusterRedissonConfigStrategyImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.jeecg.boot.starter.lock.core.strategy.impl; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.jeecg.boot.starter.lock.core.strategy.RedissonConfigStrategy; -import org.jeecg.boot.starter.lock.prop.RedissonProperties; -import org.jeecg.boot.starter.lock.enums.GlobalConstant; -import org.redisson.config.Config; - - -/** - * 集群方式Redisson配置 - * cluster方式至少6个节点(3主3从) - * 配置方式:127.0.0.1:6379,127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382,127.0.0.1:6383,127.0.0.1:6384 - * - * @author zyf - * @date 2020-11-11 - */ -@Slf4j -public class ClusterRedissonConfigStrategyImpl implements RedissonConfigStrategy { - - @Override - public Config createRedissonConfig(RedissonProperties redissonProperties) { - Config config = new Config(); - try { - String address = redissonProperties.getAddress(); - String password = redissonProperties.getPassword(); - String[] addrTokens = address.split(","); - // 设置集群(cluster)节点的服务IP和端口 - for (int i = 0; i < addrTokens.length; i++) { - config.useClusterServers().addNodeAddress(GlobalConstant.REDIS_CONNECTION_PREFIX + addrTokens[i]); - if (StringUtils.isNotBlank(password)) { - config.useClusterServers().setPassword(password); - } - } - log.info("初始化集群方式Config,连接地址:" + address); - } catch (Exception e) { - log.error("集群Redisson初始化错误", e); - e.printStackTrace(); - } - return config; - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/MasterslaveRedissonConfigStrategyImpl.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/MasterslaveRedissonConfigStrategyImpl.java deleted file mode 100644 index 59cc7456..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/MasterslaveRedissonConfigStrategyImpl.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.jeecg.boot.starter.lock.core.strategy.impl; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.jeecg.boot.starter.lock.core.strategy.RedissonConfigStrategy; -import org.jeecg.boot.starter.lock.prop.RedissonProperties; -import org.jeecg.boot.starter.lock.enums.GlobalConstant; -import org.redisson.config.Config; - - -import java.util.ArrayList; -import java.util.List; - -/** - * 主从方式Redisson配置 - *

配置方式: 127.0.0.1:6379(主),127.0.0.1:6380(子),127.0.0.1:6381(子)

- * - * @author zyf - * @date 2020-11-11 - */ -@Slf4j -public class MasterslaveRedissonConfigStrategyImpl implements RedissonConfigStrategy { - - @Override - public Config createRedissonConfig(RedissonProperties redissonProperties) { - Config config = new Config(); - try { - String address = redissonProperties.getAddress(); - String password = redissonProperties.getPassword(); - int database = redissonProperties.getDatabase(); - String[] addrTokens = address.split(","); - String masterNodeAddr = addrTokens[0]; - // 设置主节点ip - config.useMasterSlaveServers().setMasterAddress(masterNodeAddr); - if (StringUtils.isNotBlank(password)) { - config.useMasterSlaveServers().setPassword(password); - } - config.useMasterSlaveServers().setDatabase(database); - // 设置从节点,移除第一个节点,默认第一个为主节点 - List slaveList = new ArrayList<>(); - for (String addrToken : addrTokens) { - slaveList.add(GlobalConstant.REDIS_CONNECTION_PREFIX + addrToken); - } - slaveList.remove(0); - - config.useMasterSlaveServers().addSlaveAddress((String[]) slaveList.toArray()); - log.info("初始化主从方式Config,redisAddress:" + address); - } catch (Exception e) { - log.error("主从Redisson初始化错误", e); - e.printStackTrace(); - } - return config; - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/SentinelRedissonConfigStrategyImpl.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/SentinelRedissonConfigStrategyImpl.java deleted file mode 100644 index a900d83a..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/SentinelRedissonConfigStrategyImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.jeecg.boot.starter.lock.core.strategy.impl; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.jeecg.boot.starter.lock.core.strategy.RedissonConfigStrategy; -import org.jeecg.boot.starter.lock.prop.RedissonProperties; -import org.jeecg.boot.starter.lock.enums.GlobalConstant; -import org.redisson.config.Config; - - -/** - * 哨兵方式Redis连接配置 - * 比如sentinel.conf里配置为sentinel monitor my-sentinel-name 127.0.0.1 6379 2,那么这里就配置my-sentinel-name - * 配置方式:my-sentinel-name,127.0.0.1:26379,127.0.0.1:26389,127.0.0.1:26399 - * @author zyf - * @date 2020-11-11 - */ -@Slf4j -public class SentinelRedissonConfigStrategyImpl implements RedissonConfigStrategy { - - @Override - public Config createRedissonConfig(RedissonProperties redissonProperties) { - Config config = new Config(); - try { - String address = redissonProperties.getAddress(); - String password = redissonProperties.getPassword(); - int database = redissonProperties.getDatabase(); - String[] addrTokens = address.split(","); - String sentinelAliasName = addrTokens[0]; - // 设置redis配置文件sentinel.conf配置的sentinel别名 - config.useSentinelServers().setMasterName(sentinelAliasName); - config.useSentinelServers().setDatabase(database); - if (StringUtils.isNotBlank(password)) { - config.useSentinelServers().setPassword(password); - } - // 设置哨兵节点的服务IP和端口 - for (int i = 1; i < addrTokens.length; i++) { - config.useSentinelServers().addSentinelAddress(GlobalConstant.REDIS_CONNECTION_PREFIX+ addrTokens[i]); - } - log.info("初始化哨兵方式Config,redisAddress:" + address); - } catch (Exception e) { - log.error("哨兵Redisson初始化错误", e); - e.printStackTrace(); - } - return config; - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/StandaloneRedissonConfigStrategyImpl.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/StandaloneRedissonConfigStrategyImpl.java deleted file mode 100644 index 3d96217d..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/core/strategy/impl/StandaloneRedissonConfigStrategyImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.jeecg.boot.starter.lock.core.strategy.impl; - -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.jeecg.boot.starter.lock.core.strategy.RedissonConfigStrategy; -import org.jeecg.boot.starter.lock.prop.RedissonProperties; -import org.jeecg.boot.starter.lock.enums.GlobalConstant; -import org.redisson.config.Config; - - -/** - * 单机方式Redisson配置 - * - * @author zyf - * @date 2020-11-11 - */ -@Slf4j -public class StandaloneRedissonConfigStrategyImpl implements RedissonConfigStrategy { - - @Override - public Config createRedissonConfig(RedissonProperties redissonProperties) { - Config config = new Config(); - try { - String address = redissonProperties.getAddress(); - String password = redissonProperties.getPassword(); - int database = redissonProperties.getDatabase(); - String redisAddr = GlobalConstant.REDIS_CONNECTION_PREFIX + address; - config.useSingleServer().setAddress(redisAddr); - config.useSingleServer().setDatabase(database); - if (StringUtils.isNotBlank(password)) { - config.useSingleServer().setPassword(password); - } - log.info("初始化Redisson单机配置,连接地址:" + address); - } catch (Exception e) { - log.error("单机Redisson初始化错误", e); - e.printStackTrace(); - } - return config; - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/GlobalConstant.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/GlobalConstant.java deleted file mode 100644 index 5c7b2c93..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/GlobalConstant.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.jeecg.boot.starter.lock.enums; - -/** - * 全局常量枚举 - * - * @author zyf - * @date 2020-11-11 - */ - -public interface GlobalConstant { - - /** - * Redis地址连接前缀 - */ - String REDIS_CONNECTION_PREFIX = "redis://"; - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/LockModel.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/LockModel.java deleted file mode 100644 index 3cef7ad5..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/LockModel.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.jeecg.boot.starter.lock.enums; - -/** - * 锁的模式 - * @author jeecg - */ -public enum LockModel { - //可重入锁 - REENTRANT, - //公平锁 - FAIR, - //联锁(可以把一组锁当作一个锁来加锁和释放) - MULTIPLE, - //红锁 - REDLOCK, - //读锁 - READ, - //写锁 - WRITE, - //自动模式,当参数只有一个.使用 REENTRANT 参数多个 REDLOCK - AUTO -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/RedisConnectionType.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/RedisConnectionType.java deleted file mode 100644 index c41bad68..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/enums/RedisConnectionType.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.jeecg.boot.starter.lock.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * Redis连接方式 - * @author zyf - * @date 2020-11-11 - */ -@Getter -@AllArgsConstructor -public enum RedisConnectionType { - /** - * 单机部署方式(默认) - */ - STANDALONE("standalone", "单机部署方式"), - /** - * 哨兵部署方式 - */ - SENTINEL("sentinel", "哨兵部署方式"), - /** - * 集群部署方式 - */ - CLUSTER("cluster", "集群方式"), - /** - * 主从部署方式 - */ - MASTERSLAVE("masterslave", "主从部署方式"); - - /** - * 编码 - */ - private final String code; - /** - * 名称 - */ - private final String name; -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/prop/RedissonProperties.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/prop/RedissonProperties.java deleted file mode 100644 index 99676794..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/java/org/jeecg/boot/starter/lock/prop/RedissonProperties.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.jeecg.boot.starter.lock.prop; - -import lombok.Data; -import org.jeecg.boot.starter.lock.enums.RedisConnectionType; -import org.springframework.boot.context.properties.ConfigurationProperties; - -/** - * Redisson配置映射类 - * - * @author zyf - * @date 2020-11-11 - */ -@Data -@ConfigurationProperties(prefix = "jeecg.redisson") -public class RedissonProperties { - - /** - * redis主机地址,ip:port,多个用逗号(,)分隔 - */ - private String address; - /** - * 连接类型 - */ - private RedisConnectionType type; - /** - * 密码 - */ - private String password; - /** - * 数据库(默认0) - */ - private int database; - - /** - * 是否装配redisson配置 - */ - private Boolean enabled = true; - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/resources/META-INF/spring.factories b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/resources/META-INF/spring.factories deleted file mode 100644 index 4d782849..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/main/resources/META-INF/spring.factories +++ /dev/null @@ -1,4 +0,0 @@ -org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ - org.jeecg.boot.starter.lock.config.RedissonConfiguration - - diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockService.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockService.java deleted file mode 100644 index 97b8dc19..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockService.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.jeecg.boot.starter.lock.test; - -import org.jeecg.boot.starter.lock.annotation.JLock; -import org.jeecg.boot.starter.lock.annotation.JRepeat; -import org.jeecg.boot.starter.lock.annotation.LockConstant; -import org.jeecg.boot.starter.lock.client.RedissonLockClient; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; - -@Service -public class LockService { - - @Resource - private RedissonLockClient redissonLockClient; - - int n = 10; - - /** - * 模拟秒杀(注解方式) - */ - @JLock(lockKey = "#productId", expireSeconds = 5000) - public void seckill(String productId) { - if (n <= 0) { - System.out.println("活动已结束,请下次再来"); - return; - } - System.out.println(Thread.currentThread().getName() + ":秒杀到了商品"); - System.out.println(--n); - } - - /** - * 模拟秒杀(编程方式) - */ - public void seckill2(String productId) { - redissonLockClient.tryLock(productId, 5000); - if (n <= 0) { - System.out.println("活动已结束,请下次再来"); - return; - } - System.out.println(Thread.currentThread().getName() + ":秒杀到了商品"); - System.out.println(--n); - redissonLockClient.unlock(productId); - } - - - /** - * 测试重复提交 - */ - @JRepeat(lockKey = "#name", lockTime = 5) - public void reSubmit(String name) { - try { - Thread.sleep(1500); - } catch (InterruptedException e) { - e.printStackTrace(); - } - System.out.println("提交成功" + name); - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockTest.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockTest.java deleted file mode 100644 index cd0cc350..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockTest.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.jeecg.boot.starter.lock.test; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.stream.IntStream; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = LockTestApplication.class) -public class LockTest { - @Autowired - LockService lockService; - - /** - * 测试分布式锁(模拟秒杀) - */ - @Test - public void test1() throws Exception { - ExecutorService executorService = Executors.newFixedThreadPool(6); - IntStream.range(0, 30).forEach(i -> executorService.submit(() -> { - try { - lockService.seckill("20120508784"); - } catch (Exception e) { - e.printStackTrace(); - } - })); - executorService.awaitTermination(30, TimeUnit.SECONDS); - } - - /** - * 测试分布式锁(模拟秒杀) - */ - @Test - public void test2() throws Exception { - ExecutorService executorService = Executors.newFixedThreadPool(6); - IntStream.range(0, 30).forEach(i -> executorService.submit(() -> { - try { - lockService.seckill2("20120508784"); - } catch (Exception e) { - e.printStackTrace(); - } - })); - executorService.awaitTermination(30, TimeUnit.SECONDS); - } - - /** - * 测试分布式锁(模拟重复提交) - */ - @Test - public void test3() throws Exception { - ExecutorService executorService = Executors.newFixedThreadPool(6); - IntStream.range(0, 20).forEach(i -> executorService.submit(() -> { - try { - lockService.reSubmit("test"); - } catch (Exception e) { - e.printStackTrace(); - } - })); - executorService.awaitTermination(30, TimeUnit.SECONDS); - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockTestApplication.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockTestApplication.java deleted file mode 100644 index 2696677f..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/LockTestApplication.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.jeecg.boot.starter.lock.test; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.EnableAspectJAutoProxy; - -@SpringBootApplication(scanBasePackages = "org.jeecg") -@EnableAspectJAutoProxy -public class LockTestApplication { - - public static void main(String[] args) { - SpringApplication.run(LockTestApplication.class, args); - } - -} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/TestUser.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/TestUser.java deleted file mode 100644 index 71ed30c9..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/java/org/jeecg/boot/starter/lock/test/TestUser.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.jeecg.boot.starter.lock.test; - -import lombok.Data; - -@Data -public class TestUser { - private String userId; - private String userName; -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/resources/application.yml b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/resources/application.yml deleted file mode 100644 index d66a1619..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-lock/src/test/resources/application.yml +++ /dev/null @@ -1,19 +0,0 @@ -spring: - redis: - database: 0 - host: 127.0.0.1 - lettuce: - pool: - max-active: 8 #最大连接数据库连接数,设 0 为没有限制 - max-idle: 8 #最大等待连接中的数量,设 0 为没有限制 - max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。 - min-idle: 0 #最小等待连接中的数量,设 0 为没有限制 - shutdown-timeout: 100ms - password: jeecg - port: 6379 -jeecg : - redisson: - address: 127.0.0.1:6379 - password: jeecg - type: STANDALONE - enabled: true \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/pom.xml b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/pom.xml deleted file mode 100644 index 3292f14a..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - jeecg-boot-starter - org.jeecgframework.boot - 3.3.0 - - 4.0.0 - jeecg-boot-starter-rabbitmq - jeecg-boot-starter-消息队列 - - - - org.springframework.cloud - spring-cloud-starter-bus-amqp - - - - \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/client/RabbitMqClient.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/client/RabbitMqClient.java deleted file mode 100644 index 388f7498..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/client/RabbitMqClient.java +++ /dev/null @@ -1,359 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.client; - - -import cn.hutool.core.util.ObjectUtil; -import lombok.extern.slf4j.Slf4j; -import org.jeecg.boot.starter.rabbitmq.event.EventObj; -import org.jeecg.boot.starter.rabbitmq.event.JeecgRemoteApplicationEvent; -import org.jeecg.boot.starter.rabbitmq.exchange.DelayExchangeBuilder; -import org.jeecg.common.annotation.RabbitComponent; -import org.jeecg.common.base.BaseMap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.amqp.core.*; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.amqp.rabbit.core.RabbitAdmin; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.bus.BusProperties; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import javax.annotation.Resource; -import java.lang.reflect.Method; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -/** - * 消息队列客户端 - */ -@Slf4j -@Configuration -public class RabbitMqClient { - - private static final Logger logger = LoggerFactory.getLogger(RabbitMqClient.class); - - private final RabbitAdmin rabbitAdmin; - - private final RabbitTemplate rabbitTemplate; - - - @Resource - private SimpleMessageListenerContainer messageListenerContainer; - - @Resource - BusProperties busProperties; - @Resource - private ApplicationEventPublisher publisher; - - - @Resource - private ApplicationContext applicationContext; - - - @Bean - public void initQueue() { - Map beansWithRqbbitComponentMap = this.applicationContext.getBeansWithAnnotation(RabbitComponent.class); - Class clazz = null; - for (Map.Entry entry : beansWithRqbbitComponentMap.entrySet()) { - log.info("初始化队列............"); - //获取到实例对象的class信息 - clazz = entry.getValue().getClass(); - Method[] methods = clazz.getMethods(); - RabbitListener rabbitListener = clazz.getAnnotation(RabbitListener.class); - if (ObjectUtil.isNotEmpty(rabbitListener)) { - createQueue(rabbitListener); - } - for (Method method : methods) { - RabbitListener methodRabbitListener = method.getAnnotation(RabbitListener.class); - if (ObjectUtil.isNotEmpty(methodRabbitListener)) { - createQueue(methodRabbitListener); - } - } - - } - } - - /** - * 初始化队列 - * - * @param rabbitListener - */ - private void createQueue(RabbitListener rabbitListener) { - String[] queues = rabbitListener.queues(); - DirectExchange directExchange = createExchange(DelayExchangeBuilder.DELAY_EXCHANGE); - //创建交换机 - rabbitAdmin.declareExchange(directExchange); - if (ObjectUtil.isNotEmpty(queues)) { - for (String queueName : queues) { - Properties result = rabbitAdmin.getQueueProperties(queueName); - if (ObjectUtil.isEmpty(result)) { - Queue queue = new Queue(queueName); - addQueue(queue); - Binding binding = BindingBuilder.bind(queue).to(directExchange).with(queueName); - rabbitAdmin.declareBinding(binding); - log.info("创建队列:" + queueName); - }else{ - log.info("已有队列:" + queueName); - } - } - } - } - - - private Map sentObj = new HashMap<>(); - - - @Autowired - public RabbitMqClient(RabbitAdmin rabbitAdmin, RabbitTemplate rabbitTemplate) { - this.rabbitAdmin = rabbitAdmin; - this.rabbitTemplate = rabbitTemplate; - } - - - /** - * 发送远程事件 - * - * @param handlerName - * @param baseMap - */ - public void publishEvent(String handlerName, BaseMap baseMap) { - EventObj eventObj = new EventObj(); - eventObj.setHandlerName(handlerName); - eventObj.setBaseMap(baseMap); - publisher.publishEvent(new JeecgRemoteApplicationEvent(eventObj, busProperties.getId())); - } - - /** - * 转换Message对象 - * - * @param messageType 返回消息类型 MessageProperties类中常量 - * @param msg - * @return - */ - public Message getMessage(String messageType, Object msg) { - MessageProperties messageProperties = new MessageProperties(); - messageProperties.setContentType(messageType); - Message message = new Message(msg.toString().getBytes(), messageProperties); - return message; - } - - /** - * 有绑定Key的Exchange发送 - * - * @param routingKey - * @param msg - */ - public void sendMessageToExchange(TopicExchange topicExchange, String routingKey, Object msg) { - Message message = getMessage(MessageProperties.CONTENT_TYPE_JSON, msg); - rabbitTemplate.send(topicExchange.getName(), routingKey, message); - } - - /** - * 没有绑定KEY的Exchange发送 - * - * @param exchange - * @param msg - */ - public void sendMessageToExchange(TopicExchange topicExchange, AbstractExchange exchange, String msg) { - addExchange(exchange); - logger.info("RabbitMQ send " + exchange.getName() + "->" + msg); - rabbitTemplate.convertAndSend(topicExchange.getName(), msg); - } - - - /** - * 发送消息 - * - * @param queueName 队列名称 - * @param params 消息内容map - */ - public void sendMessage(String queueName, Object params) { - log.info("发送消息到mq"); - try { - rabbitTemplate.convertAndSend(DelayExchangeBuilder.DELAY_EXCHANGE, queueName, params, message -> { - return message; - }); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * 发送消息 - * - * @param queueName 队列名称 - */ - public void sendMessage(String queueName) { - this.send(queueName, this.sentObj, 0); - this.sentObj.clear(); - } - - - public RabbitMqClient put(String key, Object value) { - this.sentObj.put(key, value); - return this; - } - - /** - * 延迟发送消息 - * - * @param queueName 队列名称 - * @param params 消息内容params - * @param expiration 延迟时间 单位毫秒 - */ - public void sendMessage(String queueName, Object params, Integer expiration) { - this.send(queueName, params, expiration); - } - - private void send(String queueName, Object params, Integer expiration) { - Queue queue = new Queue(queueName); - addQueue(queue); - CustomExchange customExchange = DelayExchangeBuilder.buildExchange(); - rabbitAdmin.declareExchange(customExchange); - Binding binding = BindingBuilder.bind(queue).to(customExchange).with(queueName).noargs(); - rabbitAdmin.declareBinding(binding); - SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - log.debug("发送时间:" + sf.format(new Date())); - rabbitTemplate.convertAndSend(DelayExchangeBuilder.DEFAULT_DELAY_EXCHANGE, queueName, params, message -> { - if (expiration != null && expiration > 0) { - message.getMessageProperties().setHeader("x-delay", expiration); - } - return message; - }); - } - - - /** - * 给queue发送消息 - * - * @param queueName - */ - public String receiveFromQueue(String queueName) { - return receiveFromQueue(DirectExchange.DEFAULT, queueName); - } - - /** - * 给direct交换机指定queue发送消息 - * - * @param directExchange - * @param queueName - */ - public String receiveFromQueue(DirectExchange directExchange, String queueName) { - Queue queue = new Queue(queueName); - addQueue(queue); - Binding binding = BindingBuilder.bind(queue).to(directExchange).withQueueName(); - rabbitAdmin.declareBinding(binding); - String messages = (String) rabbitTemplate.receiveAndConvert(queueName); - System.out.println("Receive:" + messages); - return messages; - } - - /** - * 创建Exchange - * - * @param exchange - */ - public void addExchange(AbstractExchange exchange) { - rabbitAdmin.declareExchange(exchange); - } - - /** - * 删除一个Exchange - * - * @param exchangeName - */ - public boolean deleteExchange(String exchangeName) { - return rabbitAdmin.deleteExchange(exchangeName); - } - - - /** - * 声明其名称自动命名的队列。它是用exclusive=true、autoDelete=true和 durable = false - * - * @return Queue - */ - public Queue addQueue() { - return rabbitAdmin.declareQueue(); - } - - /** - * 创建一个指定的Queue - * - * @param queue - * @return queueName - */ - public String addQueue(Queue queue) { - return rabbitAdmin.declareQueue(queue); - } - - /** - * 删除一个队列 - * - * @param queueName the name of the queue. - * @param unused true if the queue should be deleted only if not in use. - * @param empty true if the queue should be deleted only if empty. - */ - public void deleteQueue(String queueName, boolean unused, boolean empty) { - rabbitAdmin.deleteQueue(queueName, unused, empty); - } - - /** - * 删除一个队列 - * - * @param queueName - * @return true if the queue existed and was deleted. - */ - public boolean deleteQueue(String queueName) { - return rabbitAdmin.deleteQueue(queueName); - } - - /** - * 绑定一个队列到一个匹配型交换器使用一个routingKey - * - * @param queue - * @param exchange - * @param routingKey - */ - public void addBinding(Queue queue, TopicExchange exchange, String routingKey) { - Binding binding = BindingBuilder.bind(queue).to(exchange).with(routingKey); - rabbitAdmin.declareBinding(binding); - } - - /** - * 绑定一个Exchange到一个匹配型Exchange 使用一个routingKey - * - * @param exchange - * @param topicExchange - * @param routingKey - */ - public void addBinding(Exchange exchange, TopicExchange topicExchange, String routingKey) { - Binding binding = BindingBuilder.bind(exchange).to(topicExchange).with(routingKey); - rabbitAdmin.declareBinding(binding); - } - - /** - * 去掉一个binding - * - * @param binding - */ - public void removeBinding(Binding binding) { - rabbitAdmin.removeBinding(binding); - } - - /** - * 创建交换器 - * - * @param exchangeName - * @return - */ - public DirectExchange createExchange(String exchangeName) { - return new DirectExchange(exchangeName, true, false); - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/config/RabbitMqConfig.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/config/RabbitMqConfig.java deleted file mode 100644 index 9644dc9a..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/config/RabbitMqConfig.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.config; - - -import java.util.UUID; - -import org.jeecg.boot.starter.rabbitmq.event.JeecgRemoteApplicationEvent; -import org.jeecg.common.config.mqtoken.TransmitUserTokenFilter; -import org.springframework.amqp.core.AcknowledgeMode; -import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.rabbit.core.RabbitAdmin; -import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; -import org.springframework.amqp.support.ConsumerTagStrategy; -import org.springframework.cloud.bus.jackson.RemoteApplicationEventScan; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * 消息队列配置类 - * - * @author zyf - */ -@Configuration -@RemoteApplicationEventScan(basePackageClasses = JeecgRemoteApplicationEvent.class) -public class RabbitMqConfig { - - - @Bean - public RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory) { - RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory); - //设置忽略声明异常 - rabbitAdmin.setIgnoreDeclarationExceptions(true); - return rabbitAdmin; - } - - /** - * 注入获取token过滤器 - * @return - */ - @Bean - public TransmitUserTokenFilter transmitUserInfoFromHttpHeader(){ - return new TransmitUserTokenFilter(); - } - - @Bean - public SimpleMessageListenerContainer messageListenerContainer(ConnectionFactory connectionFactory) { - SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); - container.setConnectionFactory(connectionFactory); - //手动确认 - container.setAcknowledgeMode(AcknowledgeMode.MANUAL); - //当前的消费者数量 - container.setConcurrentConsumers(1); - //最大的消费者数量 - container.setMaxConcurrentConsumers(1); - //是否重回队列 - container.setDefaultRequeueRejected(true); - - //消费端的标签策略 - container.setConsumerTagStrategy(new ConsumerTagStrategy() { - @Override - public String createConsumerTag(String queue) { - return queue + "_" + UUID.randomUUID().toString(); - } - }); - return container; - } - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/BaseRabbiMqHandler.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/BaseRabbiMqHandler.java deleted file mode 100644 index 2c0c2fdd..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/BaseRabbiMqHandler.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.core; - -import com.rabbitmq.client.Channel; -import lombok.extern.slf4j.Slf4j; - -import org.jeecg.boot.starter.rabbitmq.listenter.MqListener; -import org.jeecg.common.config.mqtoken.UserTokenContext; - -import java.io.IOException; - -/** - * - * @author zyf - */ -@Slf4j -public class BaseRabbiMqHandler { - - private String token= UserTokenContext.getToken(); - - public void onMessage(T t, Long deliveryTag, Channel channel, MqListener mqListener) { - try { - UserTokenContext.setToken(token); - mqListener.handler(t, channel); - channel.basicAck(deliveryTag, false); - } catch (Exception e) { - log.info("接收消息失败,重新放回队列"); - try { - /** - * deliveryTag:该消息的index - * multiple:是否批量.true:将一次性拒绝所有小于deliveryTag的消息。 - * requeue:被拒绝的是否重新入队列 - */ - channel.basicNack(deliveryTag, false, true); - } catch (IOException ex) { - ex.printStackTrace(); - } - } - - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/MapMessageConverter.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/MapMessageConverter.java deleted file mode 100644 index b5f0a0b4..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/core/MapMessageConverter.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.core; - -import org.springframework.amqp.core.Message; -import org.springframework.amqp.core.MessageProperties; -import org.springframework.amqp.support.converter.MessageConversionException; -import org.springframework.amqp.support.converter.MessageConverter; - -import java.io.ByteArrayInputStream; -import java.io.ObjectInputStream; -import java.util.HashMap; -import java.util.Map; - -public class MapMessageConverter implements MessageConverter { - @Override - public Message toMessage(Object object, MessageProperties messageProperties) throws MessageConversionException { - return new Message(object.toString().getBytes(), messageProperties); - } - - @Override - public Object fromMessage(Message message) throws MessageConversionException { - String contentType = message.getMessageProperties().getContentType(); - if (null != contentType && contentType.contains("text")) { - return new String(message.getBody()); - } else { - ObjectInputStream objInt = null; - try { - ByteArrayInputStream byteInt = new ByteArrayInputStream(message.getBody()); - objInt = new ObjectInputStream(byteInt); - //byte[]转map - Map map = (HashMap) objInt.readObject(); - return map; - } catch (Exception e) { - e.printStackTrace(); - } - } - return null; - - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/BaseApplicationEvent.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/BaseApplicationEvent.java deleted file mode 100644 index 9a996a31..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/BaseApplicationEvent.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.event; - -import cn.hutool.core.util.ObjectUtil; - -import org.jeecg.common.util.SpringContextHolder; -import org.springframework.context.ApplicationListener; -import org.springframework.stereotype.Component; - -/** - * 监听远程事件,并分发消息到业务模块消息处理器 - */ -@Component -public class BaseApplicationEvent implements ApplicationListener { - - @Override - public void onApplicationEvent(JeecgRemoteApplicationEvent jeecgRemoteApplicationEvent) { - EventObj eventObj = jeecgRemoteApplicationEvent.getEventObj(); - if (ObjectUtil.isNotEmpty(eventObj)) { - //获取业务模块消息处理器 - JeecgBusEventHandler busEventHandler = SpringContextHolder.getHandler(eventObj.getHandlerName(), JeecgBusEventHandler.class); - if (ObjectUtil.isNotEmpty(busEventHandler)) { - //通知业务模块 - busEventHandler.onMessage(eventObj); - } - } - } - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/EventObj.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/EventObj.java deleted file mode 100644 index 295597b6..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/EventObj.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.event; - -import lombok.Data; -import org.jeecg.common.base.BaseMap; - -import java.io.Serializable; - -/** - * 远程事件数据对象 - */ -@Data -public class EventObj implements Serializable { - /** - * 数据对象 - */ - private BaseMap baseMap; - /** - * 自定义业务模块消息处理器beanName - */ - private String handlerName; -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/JeecgBusEventHandler.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/JeecgBusEventHandler.java deleted file mode 100644 index 9153054b..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/JeecgBusEventHandler.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.event; - -/** - * 业务模块消息处理器接口 - */ -public interface JeecgBusEventHandler { - void onMessage(EventObj map); -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/JeecgRemoteApplicationEvent.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/JeecgRemoteApplicationEvent.java deleted file mode 100644 index 036f97b6..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/event/JeecgRemoteApplicationEvent.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.event; - -import lombok.Data; -import org.springframework.cloud.bus.event.RemoteApplicationEvent; - -/** - * 自定义网关刷新远程事件 - * - * @author : zyf - * @date :2020-11-10 - */ -@Data -public class JeecgRemoteApplicationEvent extends RemoteApplicationEvent { - - private JeecgRemoteApplicationEvent() { - } - - private EventObj eventObj; - - public JeecgRemoteApplicationEvent(EventObj source, String originService, String destinationService) { - super(source, originService, destinationService); - this.eventObj = source; - } - - public JeecgRemoteApplicationEvent(EventObj source, String originService) { - super(source, originService, ""); - this.eventObj = source; - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/exchange/DelayExchangeBuilder.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/exchange/DelayExchangeBuilder.java deleted file mode 100644 index 3a0f5169..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/exchange/DelayExchangeBuilder.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.exchange; - -import org.springframework.amqp.core.CustomExchange; - -import java.util.HashMap; -import java.util.Map; - -/** - * 延迟交换器构造器 - * @author: zyf - * @date: 2019/3/8 13:31 - * @description: - */ -public class DelayExchangeBuilder { - /** - * 默认延迟消息交换器 - */ - public final static String DEFAULT_DELAY_EXCHANGE = "jeecg.delayed.exchange"; - /** - * 普通交换器 - */ - public final static String DELAY_EXCHANGE = "jeecg.direct.exchange"; - - /** - * 构建延迟消息交换器 - * @return - */ - public static CustomExchange buildExchange() { - Map args = new HashMap(); - args.put("x-delayed-type", "direct"); - return new CustomExchange(DEFAULT_DELAY_EXCHANGE, "x-delayed-message", true, false, args); - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/listenter/MqListener.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/listenter/MqListener.java deleted file mode 100644 index 6bc46a29..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-rabbitmq/src/main/java/org/jeecg/boot/starter/rabbitmq/listenter/MqListener.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.jeecg.boot.starter.rabbitmq.listenter; - -import com.rabbitmq.client.Channel; - -public interface MqListener { - - default void handler(T map, Channel channel) { - } - -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-seata/pom.xml b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-seata/pom.xml deleted file mode 100644 index 60573841..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-seata/pom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - jeecg-boot-starter - org.jeecgframework.boot - 3.3.0 - - 4.0.0 - jeecg-boot-starter-seata - 分布式事务 - - - - io.seata - seata-spring-boot-starter - 1.4.2 - - - com.alibaba.nacos - nacos-client - 1.3.3 - - - - \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/pom.xml b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/pom.xml deleted file mode 100644 index bb8f3324..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - jeecg-boot-starter - org.jeecgframework.boot - 3.3.0 - - 4.0.0 - jeecg-boot-starter-shardingsphere - 分库分表 - - - - com.baomidou - dynamic-datasource-spring-boot-starter - ${dynamic-datasource-spring-boot-starter.version} - - - - org.apache.shardingsphere - shardingsphere-jdbc-core-spring-boot-starter - 5.0.0 - - - - \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/src/main/java/org/jeecg/boot/shardingsphere/config/DataSourceConfiguration.java b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/src/main/java/org/jeecg/boot/shardingsphere/config/DataSourceConfiguration.java deleted file mode 100644 index 8d87329b..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/src/main/java/org/jeecg/boot/shardingsphere/config/DataSourceConfiguration.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.jeecg.boot.shardingsphere.config; - -import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; -import com.baomidou.dynamic.datasource.provider.AbstractDataSourceProvider; -import com.baomidou.dynamic.datasource.provider.DynamicDataSourceProvider; -import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; -import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration; -import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties; -import org.springframework.boot.SpringBootConfiguration; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Lazy; -import org.springframework.context.annotation.Primary; - -import javax.annotation.Resource; -import javax.sql.DataSource; -import java.util.Map; - -/** - * 分库分表数据源配置 - * @author zyf - */ -@Configuration -@AutoConfigureBefore({DynamicDataSourceAutoConfiguration.class, SpringBootConfiguration.class}) -public class DataSourceConfiguration { - /** - * 分表数据源名称 - */ - public static final String SHARDING_DATA_SOURCE_NAME = "sharding"; - /** - * 动态数据源配置项 - */ - @Resource - private DynamicDataSourceProperties dynamicDataSourceProperties; - - @Lazy - @Resource - DataSource shardingDataSource; - - /** - * 将shardingDataSource放到了多数据源(dataSourceMap)中 - * 注意有个版本的bug,3.1.1版本 不会进入loadDataSources 方法,这样就一直造成数据源注册失败 - */ - @Bean - public DynamicDataSourceProvider dynamicDataSourceProvider() { - Map datasourceMap = dynamicDataSourceProperties.getDatasource(); - return new AbstractDataSourceProvider() { - @Override - public Map loadDataSources() { - Map dataSourceMap = createDataSourceMap(datasourceMap); - // 将 shardingjdbc 管理的数据源也交给动态数据源管理 - dataSourceMap.put(SHARDING_DATA_SOURCE_NAME, shardingDataSource); - return dataSourceMap; - } - }; - } - - /** - * 将动态数据源设置为首选的 - * 当spring存在多个数据源时, 自动注入的是首选的对象 - * 设置为主要的数据源之后,就可以支持shardingjdbc原生的配置方式了 - * - * @return - */ - @Primary - @Bean - public DataSource dataSource(DynamicDataSourceProvider dynamicDataSourceProvider) { - DynamicRoutingDataSource dataSource = new DynamicRoutingDataSource(); - dataSource.setPrimary(dynamicDataSourceProperties.getPrimary()); - dataSource.setStrict(dynamicDataSourceProperties.getStrict()); - dataSource.setStrategy(dynamicDataSourceProperties.getStrategy()); - dataSource.setProvider(dynamicDataSourceProvider); - dataSource.setP6spy(dynamicDataSourceProperties.getP6spy()); - dataSource.setSeata(dynamicDataSourceProperties.getSeata()); - return dataSource; - } -} diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/src/main/resources/application.yml b/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/src/main/resources/application.yml deleted file mode 100644 index c3437522..00000000 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-shardingsphere/src/main/resources/application.yml +++ /dev/null @@ -1,3 +0,0 @@ -spring: - profiles: - active: sharding \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/pom.xml b/jeecg-boot/jeecg-boot-starter/pom.xml deleted file mode 100644 index 1d24580d..00000000 --- a/jeecg-boot/jeecg-boot-starter/pom.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - org.jeecgframework.boot - jeecg-boot-parent - 3.3.0 - - 4.0.0 - jeecg-boot-starter - pom - - - 1.8 - UTF-8 - - - - jeecg-boot-starter-cloud - jeecg-boot-starter-job - jeecg-boot-starter-lock - jeecg-boot-starter-rabbitmq - jeecg-boot-starter-shardingsphere - jeecg-boot-starter-seata - - - - - org.jeecgframework.boot - jeecg-boot-base-tools - - - - org.springframework.boot - spring-boot-autoconfigure - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - - - - - maven-compiler-plugin - - 1.8 - 1.8 - UTF-8 - - - - - \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/docker-compose-base.yml b/jeecg-boot/jeecg-cloud-module/docker-compose-base.yml index b2682017..6d44c4d8 100644 --- a/jeecg-boot/jeecg-cloud-module/docker-compose-base.yml +++ b/jeecg-boot/jeecg-cloud-module/docker-compose-base.yml @@ -27,12 +27,14 @@ services: container_name: jeecg-boot-redis hostname: jeecg-boot-redis -# jeecg-boot-rabbitmq: -# # image: rabbitmq:3-management -# image: rabbitmq:3 -# ports: -# - 5672:5672 -# # - 15672:15672 -# restart: always -# container_name: jeecg-boot-rabbitmq -# hostname: jeecg-boot-rabbitmq + jeecg-boot-rabbitmq: + image: rabbitmq:3.7.7-management + ports: + - 5672:5672 + - 15672:15672 + restart: always + container_name: jeecg-boot-rabbitmq + hostname: jeecg-boot-rabbitmq + environment: + RABBITMQ_DEFAULT_USER: guest + RABBITMQ_DEFAULT_PASS: guest diff --git a/jeecg-boot/jeecg-cloud-module/docker-compose.yml b/jeecg-boot/jeecg-cloud-module/docker-compose.yml index 2e7c0516..2ae58403 100644 --- a/jeecg-boot/jeecg-cloud-module/docker-compose.yml +++ b/jeecg-boot/jeecg-cloud-module/docker-compose.yml @@ -13,8 +13,8 @@ services: depends_on: - jeecg-boot-nacos build: - context: ./jeecg-cloud-system-start - container_name: jeecg-boot-system + context: ./jeecg-system-cloud-start + container_name: jeecg-system-start hostname: jeecg-boot-system restart: on-failure environment: @@ -24,8 +24,8 @@ services: depends_on: - jeecg-boot-nacos build: - context: ../jeecg-boot-module-demo - container_name: jeecg-boot-demo + context: ./jeecg-demo-cloud-start + container_name: jeecg-demo-start hostname: jeecg-boot-demo restart: on-failure environment: diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/Dockerfile b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/Dockerfile index 504ba08b..364a1b62 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/Dockerfile +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/Dockerfile @@ -10,6 +10,6 @@ WORKDIR /jeecg-cloud-gateway EXPOSE 9999 -ADD ./target/jeecg-cloud-gateway-3.3.0.jar ./ +ADD ./target/jeecg-cloud-gateway-3.4.0.jar ./ -CMD sleep 50;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-gateway-3.3.0.jar \ No newline at end of file +CMD sleep 50;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-gateway-3.4.0.jar \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/README.md b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/README.md index b10d2a7e..78813e6e 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/README.md +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/README.md @@ -1,7 +1,3 @@ -# 服务化改造手册 +http://localhost:9999 -~~~ -注意 :启动服务跨域问题处理 -1、需要将common 模块的 WebMvcConfiguration corsFilter 注掉 后面做成注解切换 -2、org.jeecg.config.shiro.filters.JwtFilter类的 65行,跨域代码注释掉 -~~~ \ No newline at end of file +提示:在未启动服务实例情况下,看的接口文档为空 \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/pom.xml index f56fd899..107dac56 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-module org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 jeecg-cloud-gateway diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/JeecgGatewayApplication.java b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/JeecgGatewayApplication.java index 35dc7028..3da36d24 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/JeecgGatewayApplication.java +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/JeecgGatewayApplication.java @@ -31,8 +31,8 @@ public class JeecgGatewayApplication implements CommandLineRunner { public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication.run(JeecgGatewayApplication.class, args); - String userName = applicationContext.getEnvironment().getProperty("jeecg.test"); - System.err.println("user name :" +userName); + //String userName = applicationContext.getEnvironment().getProperty("jeecg.test"); + //System.err.println("user name :" +userName); } /** diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/config/GatewayRoutersConfig.java b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/config/GatewayRoutersConfig.java index 1d9a5da0..fc6ae189 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/config/GatewayRoutersConfig.java +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/config/GatewayRoutersConfig.java @@ -28,7 +28,7 @@ public class GatewayRoutersConfig { this.serverAddr = serverAddr; } - @Value("${spring.cloud.nacos.discovery.namespace}") + @Value("${spring.cloud.nacos.discovery.namespace:#{null}}") public void setNamespace(String namespace) { this.namespace = namespace; } @@ -48,12 +48,12 @@ public class GatewayRoutersConfig { this.dataType = dataType; } - @Value("${spring.cloud.nacos.config.username}") + @Value("${spring.cloud.nacos.config.username:#{null}}") public void setUsername(String username) { this.username = username; } - @Value("${spring.cloud.nacos.config.password}") + @Value("${spring.cloud.nacos.config.password:#{null}}") public void setPassword(String password) { this.password = password; } diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/loader/DynamicRouteLoader.java b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/loader/DynamicRouteLoader.java index ee525723..6101029f 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/loader/DynamicRouteLoader.java +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/java/org/jeecg/loader/DynamicRouteLoader.java @@ -339,9 +339,15 @@ public class DynamicRouteLoader implements ApplicationEventPublisherAware { try { Properties properties = new Properties(); properties.setProperty("serverAddr", gatewayRoutersConfig.getServerAddr()); - properties.setProperty("namespace", gatewayRoutersConfig.getNamespace()); - properties.setProperty("username", gatewayRoutersConfig.getUsername()); - properties.setProperty("password", gatewayRoutersConfig.getPassword()); + if(StringUtils.isNotBlank(gatewayRoutersConfig.getNamespace())){ + properties.setProperty("namespace", gatewayRoutersConfig.getNamespace()); + } + if(StringUtils.isNotBlank( gatewayRoutersConfig.getUsername())){ + properties.setProperty("username", gatewayRoutersConfig.getUsername()); + } + if(StringUtils.isNotBlank(gatewayRoutersConfig.getPassword())){ + properties.setProperty("password", gatewayRoutersConfig.getPassword()); + } return configService = NacosFactory.createConfigService(properties); } catch (Exception e) { log.error("创建ConfigService异常", e); diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/resources/application.yml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/resources/application.yml index b4484340..987f7a44 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/resources/application.yml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-gateway/src/main/resources/application.yml @@ -1,13 +1,32 @@ server: port: 9999 + spring: application: name: jeecg-gateway main: - #循环依赖默认情况下已经被禁止了 allow-circular-references: true - allow-bean-definition-overriding: true + config: + import: + - optional:nacos:${spring.application.name}-@profile.name@.yaml cloud: + nacos: + config: + server-addr: @config.server-addr@ + discovery: + server-addr: ${spring.cloud.nacos.config.server-addr} + gateway: + discovery: + locator: + enabled: true + globalcors: + cors-configurations: + '[/**]': + allowCredentials: true + #springboot2.4后需用allowedOriginPatterns + allowedOriginPatterns: "*" + allowedMethods: "*" + allowedHeaders: "*" #Sentinel配置 sentinel: transport: @@ -79,36 +98,4 @@ spring: dataId: ${spring.application.name}-api-rules groupId: SENTINEL_GROUP rule-type: gw-api-group - data-type: json - gateway: - discovery: - locator: - enabled: true - globalcors: - cors-configurations: - '[/**]': - allowCredentials: true - #springboot2.4后需用allowedOriginPatterns - allowedOriginPatterns: "*" - allowedMethods: "*" - allowedHeaders: "*" -# httpclient: -# connect-timeout: 1000 -# response-timeout: 5s -# # Nacos的yml方式路由配置(默认注释掉,采用数据库加载) -# - id: jeecg-demo -# uri: lb://jeecg-demo -# predicates: -# - Path=/mock/**,/test/**,/bigscreen/template1/**,/bigscreen/template2/** -# - id: jeecg-system -# uri: lb://jeecg-system -# predicates: -# - Path=/sys/**,/eoa/**,/v1/**,/joa/**,/online/**,/bigscreen/**,/jmreport/**,/desform/**,/act/**,/plug-in/**,/generic/** -# - id: jeecg-system-websocket -# uri: lb:ws://jeecg-system -# predicates: -# - Path=/websocket/**,/eoaSocket/**,/newsWebsocket/** -# - id: jeecg-demo-websocket -# uri: lb:ws://jeecg-demo -# predicates: -# - Path=/vxeSocket/** \ No newline at end of file + data-type: json \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-monitor/README.md b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-monitor/README.md new file mode 100644 index 00000000..2ed8dfd9 --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-monitor/README.md @@ -0,0 +1,2 @@ +http://localhost:9111 +账号密码:admin/admin \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-monitor/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-monitor/pom.xml index 7e961c69..8dd02cf1 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-monitor/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-monitor/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-module org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 jeecg-cloud-monitor diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/Dockerfile b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/Dockerfile index 0ed7e579..f1e0b844 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/Dockerfile +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/Dockerfile @@ -10,6 +10,6 @@ WORKDIR /jeecg-cloud-nacos EXPOSE 8848 -ADD ./target/jeecg-cloud-nacos-3.3.0.jar ./ +ADD ./target/jeecg-cloud-nacos-3.4.0.jar ./ -CMD sleep 5;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-nacos-3.3.0.jar \ No newline at end of file +CMD sleep 5;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-nacos-3.4.0.jar \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/README.md b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/README.md new file mode 100644 index 00000000..50023da0 --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/README.md @@ -0,0 +1,11 @@ +访问地址: http://localhost:8848/nacos +账号密码:nacos/nacos + + +# 使用方法 + +- 1、目前只做了关闭鉴权模式 +- 2、此项目与官方同步,只是为了简化微服务部署 +- 3、如何不用此模块,使用自己的naocs,请创建下面目录中的配置文件 + 目录:jeecg-cloud-nacos/docs/config + 配置文件: YAML diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-dev.yaml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-dev.yaml new file mode 100644 index 00000000..99a0f12f --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-dev.yaml @@ -0,0 +1,146 @@ +spring: + datasource: + druid: + stat-view-servlet: + enabled: true + loginUsername: admin + loginPassword: 123456 + allow: + web-stat-filter: + enabled: true + dynamic: + druid: + initial-size: 5 + min-idle: 5 + maxActive: 20 + maxWait: 60000 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: SELECT 1 FROM DUAL + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + poolPreparedStatements: true + maxPoolPreparedStatementPerConnectionSize: 20 + filters: stat,wall,slf4j + connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000 + datasource: + master: + url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai + username: root + password: root + driver-class-name: com.mysql.cj.jdbc.Driver + redis: + database: 0 + host: jeecg-boot-redis + password: + port: 6379 + rabbitmq: + host: jeecg-boot-rabbitmq + username: guest + password: guest + port: 5672 + publisher-confirms: true + publisher-returns: true + virtual-host: / + listener: + simple: + acknowledge-mode: manual + concurrency: 1 + max-concurrency: 1 + retry: + enabled: true +minidao: + base-package: org.jeecg.modules.jmreport.*,org.jeecg.modules.drag.* +jeecg: + signatureSecret: dd05f1c54d63749eda95f9fa6d49v442a + signUrls: /sys/dict/getDictItems/*,/sys/dict/loadDict/*,/sys/dict/loadDictOrderByValue/*,/sys/dict/loadDictItem/*,/sys/dict/loadTreeData,/sys/api/queryTableDictItemsByCode,/sys/api/queryFilterTableDictInfo,/sys/api/queryTableDictByKeys,/sys/api/translateDictFromTable,/sys/api/translateDictFromTableByKeys + uploadType: local + domainUrl: + pc: http://localhost:3100 + app: http://localhost:8051 + path: + upload: /opt/upFiles + webapp: /opt/webapp + shiro: + excludeUrls: /test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/** + oss: + endpoint: oss-cn-beijing.aliyuncs.com + accessKey: ?? + secretKey: ?? + bucketName: jeecgdev + staticDomain: ?? + elasticsearch: + cluster-name: jeecg-ES + cluster-nodes: jeecg-boot-es:9200 + check-enabled: false + file-view-domain: 127.0.0.1:8012 + minio: + minio_url: http://minio.jeecg.com + minio_name: ?? + minio_pass: ?? + bucketName: otatest + jmreport: + mode: dev + is_verify_token: false + verify_methods: remove,delete,save,add,update + wps: + domain: https://wwo.wps.cn/office/ + appid: ?? + appsecret: ?? + xxljob: + enabled: false + adminAddresses: http://jeecg-boot-xxljob:9080/xxl-job-admin + appname: ${spring.application.name} + accessToken: '' + logPath: logs/jeecg/job/jobhandler/ + logRetentionDays: 30 + redisson: + address: jeecg-boot-redis:6379 + password: + type: STANDALONE + enabled: true +logging: + level: + org.jeecg.modules.system.mapper : info +cas: + prefixUrl: http://localhost:8888/cas +knife4j: + production: false + basic: + enable: false + username: jeecg + password: jeecg1314 +justauth: + enabled: true + type: + GITHUB: + client-id: ?? + client-secret: ?? + redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/github/callback + WECHAT_ENTERPRISE: + client-id: ?? + client-secret: ?? + redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/wechat_enterprise/callback + agent-id: ?? + DINGTALK: + client-id: ?? + client-secret: ?? + redirect-uri: http://sso.test.com:8080/jeecg-boot/thirdLogin/dingtalk/callback + cache: + type: default + prefix: 'demo::' + timeout: 1h +third-app: + enabled: false + type: + WECHAT_ENTERPRISE: + enabled: false + client-id: ?? + client-secret: ?? + agent-id: ?? + DINGTALK: + enabled: false + client-id: ?? + client-secret: ?? + agent-id: ?? \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-gateway-dev.yaml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-gateway-dev.yaml new file mode 100644 index 00000000..0ac5bed7 --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-gateway-dev.yaml @@ -0,0 +1,13 @@ +jeecg: + route: + config: + #type:database nacos yml + data-type: database + group: DEFAULT_GROUP + data-id: jeecg-gateway-router +spring: + redis: + database: 0 + host: jeecg-boot-redis + port: 6379 + password: \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg-gateway-router.json b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-gateway-router.json similarity index 68% rename from jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg-gateway-router.json rename to jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-gateway-router.json index a9120ced..58f70cfb 100644 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg-gateway-router.json +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg-gateway-router.json @@ -5,16 +5,9 @@ "name": "Path", "args": { "_genkey_0": "/sys/**", - "_genkey_1": "/eoa/**", - "_genkey_2": "/joa/**", - "_genkey_3": "/jmreport/**", - "_genkey_4": "/bigscreen/**", - "_genkey_5": "/desform/**", - "_genkey_6": "/online/**", - "_genkey_8": "/act/**", - "_genkey_9": "/plug-in/**", - "_genkey_10": "/generic/**", - "_genkey_11": "/v1/**" + "_genkey_1": "/jmreport/**", + "_genkey_3": "/online/**", + "_genkey_4": "/generic/**" } }], "filters": [], @@ -40,8 +33,7 @@ "name": "Path", "args": { "_genkey_0": "/websocket/**", - "_genkey_1": "/eoaSocket/**", - "_genkey_2": "/newsWebsocket/**" + "_genkey_1": "/newsWebsocket/**" } }], "filters": [], diff --git a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg.yaml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg.yaml similarity index 64% rename from jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg.yaml rename to jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg.yaml index 99ab1cca..5178eba9 100644 --- a/jeecg-boot/jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg.yaml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/docs/config/jeecg.yaml @@ -16,12 +16,12 @@ management: endpoints: web: exposure: - include: "*" #暴露所有节点 + include: "*" health: - sensitive: true #关闭过滤敏感信息 + sensitive: true endpoint: health: - show-details: ALWAYS #显示详细信息 + show-details: ALWAYS spring: servlet: multipart: @@ -38,15 +38,11 @@ spring: starttls: enable: true required: true - ## quartz定时任务,采用数据库方式 quartz: job-store-type: jdbc initialize-schema: embedded - #设置自动启动,默认为 true - auto-startup: true - #延迟1秒启动定时任务 + auto-startup: false startup-delay: 1s - #启动时更新己存在的Job overwrite-existing-jobs: true properties: org: @@ -55,18 +51,17 @@ spring: instanceName: MyScheduler instanceId: AUTO jobStore: - class: org.quartz.impl.jdbcjobstore.JobStoreTX + class: org.springframework.scheduling.quartz.LocalDataSourceJobStore driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate tablePrefix: QRTZ_ isClustered: true - misfireThreshold: 60000 - clusterCheckinInterval: 10000 + misfireThreshold: 12000 + clusterCheckinInterval: 15000 threadPool: class: org.quartz.simpl.SimpleThreadPool threadCount: 10 threadPriority: 5 threadsInheritContextClassLoaderOfInitializingThread: true - #json 时间戳统一转换 jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 @@ -74,46 +69,32 @@ spring: proxy-target-class: true activiti: check-process-definitions: false - #启用作业执行器 async-executor-activate: false - #启用异步执行器 job-executor-activate: false jpa: open-in-view: false - #配置freemarker freemarker: - # 设置模板后缀名 suffix: .ftl - # 设置文档类型 content-type: text/html - # 设置页面编码格式 charset: UTF-8 - # 设置页面缓存 cache: false prefer-file-system-access: false - # 设置ftl文件路径 template-loader-path: - classpath:/templates - # 设置静态文件路径,js,css等 mvc: static-path-pattern: /** + pathmatch: + matching-strategy: ant_path_matcher resource: static-locations: classpath:/static/,classpath:/public/ autoconfigure: exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure -#mybatis plus 设置 mybatis-plus: mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml global-config: - # 关闭MP3.0自带的banner banner: false db-config: - #主键类型 0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)"; id-type: ASSIGN_ID - # 默认数据库表下划线命名 table-underline: true configuration: - # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用 - #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl - # 返回类型为Map,显示null对应的字段 call-setters-on-nulls: true \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/pom.xml index a82925f1..2377f3bb 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-nacos jeecg-cloud-nacos nacos启动模块 - 3.3.0 + 3.4.0 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/src/main/java/com/alibaba/nacos/JeecgNacosApplication.java b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/src/main/java/com/alibaba/nacos/JeecgNacosApplication.java index 91881b21..fbc7dc59 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/src/main/java/com/alibaba/nacos/JeecgNacosApplication.java +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-nacos/src/main/java/com/alibaba/nacos/JeecgNacosApplication.java @@ -19,14 +19,9 @@ import javax.servlet.http.HttpServletResponse; @EnableScheduling public class JeecgNacosApplication { - /** - * 是否单机模式启动 - */ + /** 是否单机模式启动 */ private static String standalone = "true"; - - /** - * 是否开启鉴权 - */ + /** 是否开启鉴权 */ private static String enabled = "false"; public static void main(String[] args) { diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/Dockerfile b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/Dockerfile index f2323079..1b89f6ac 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/Dockerfile +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/Dockerfile @@ -10,6 +10,6 @@ WORKDIR /jeecg-cloud-sentinel EXPOSE 8848 -ADD ./target/jeecg-cloud-sentinel-3.3.0.jar ./ +ADD ./target/jeecg-cloud-sentinel-3.4.0.jar ./ -CMD sleep 5;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-sentinel-3.3.0.jar +CMD sleep 5;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-sentinel-3.4.0.jar diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/README.md b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/README.md index 1db789a8..b3f2b778 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/README.md +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/README.md @@ -4,6 +4,6 @@ # 使用方法 -- 1、第一次登录sentinel内容是空的,必须访问了微服务实例才有配置 +- 1、第一次登录sentinel内容是空的,必须访问了微服务实例的请求才会出现配置 - 2、sentinel做了深度改造,支持持久化到nacos中 - 3、目前只针对gateway做的控制,其他服务不需要 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/pom.xml index fd113378..5e33f1e8 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/pom.xml @@ -5,31 +5,12 @@ jeecg-cloud-module org.jeecgframework.boot - 3.3.0 + 3.4.0 jeecg-cloud-sentinel jeecg-cloud-sentinel sentinel启动模块 - - - aliyun - aliyun Repository - https://maven.aliyun.com/repository/public - - false - - - - jeecg - jeecg Repository - https://maven.jeecg.org/nexus/content/repositories/jeecg - - false - - - - org.jeecgframework.cloud diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/nacos/SentinelConfig.java b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/nacos/SentinelConfig.java index f82a592a..8326ae99 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/nacos/SentinelConfig.java +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/src/main/java/com/alibaba/csp/sentinel/dashboard/rule/nacos/SentinelConfig.java @@ -24,6 +24,7 @@ import com.alibaba.csp.sentinel.dashboard.datasource.entity.rule.*; import com.alibaba.csp.sentinel.dashboard.rule.nacos.entity.AuthorityRuleCorrectEntity; import com.alibaba.csp.sentinel.dashboard.rule.nacos.entity.ParamFlowRuleCorrectEntity; import com.alibaba.nacos.api.PropertyKeyConst; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -150,8 +151,12 @@ public class SentinelConfig { public ConfigService nacosConfigService() throws Exception { Properties properties=new Properties(); properties.put(PropertyKeyConst.SERVER_ADDR,nacosConfigProperties.getServerAddr()); - properties.put(PropertyKeyConst.USERNAME,nacosConfigProperties.getUsername()); - properties.put(PropertyKeyConst.PASSWORD,nacosConfigProperties.getPassword()); + if(StringUtils.isNotBlank(nacosConfigProperties.getUsername())){ + properties.put(PropertyKeyConst.USERNAME,nacosConfigProperties.getUsername()); + } + if(StringUtils.isNotBlank(nacosConfigProperties.getPassword())){ + properties.put(PropertyKeyConst.PASSWORD,nacosConfigProperties.getPassword()); + } return ConfigFactory.createConfigService(properties); } } diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/src/main/resources/application.yml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/src/main/resources/application.yml index 98d0c3d8..551dd725 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/src/main/resources/application.yml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-sentinel/src/main/resources/application.yml @@ -32,8 +32,6 @@ logging: nacos: server: ip: @config.server-addr@ - password: @config.password@ - username: @config.username@ sentinel: dashboard: version: 1.8.2 \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/resources/application-dev.yml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/resources/application-dev.yml deleted file mode 100644 index e69de29b..00000000 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/resources/application.yml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/resources/application.yml deleted file mode 100644 index ac7e96ff..00000000 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/resources/application.yml +++ /dev/null @@ -1,57 +0,0 @@ -server: - #微服务端口 - port: 7001 -spring: - application: - name: jeecg-system -# cloud: -# #Sentinel持久化配置 -# sentinel: -# transport: -# dashboard: jeecg-boot-sentinel:9000 -# datasource: -# #流控规则 -# flow: # 指定数据源名称 -# # 指定nacos数据源 -# nacos: -# server-addr: @config.server-addr@ -# # 指定配置文件 -# dataId: ${spring.application.name}-flow-rules -# # 指定分组 -# groupId: SENTINEL_GROUP -# # 指定配置文件规则类型 -# rule-type: flow -# # 指定配置文件数据格式 -# data-type: json -# #降级规则 -# degrade: -# nacos: -# server-addr: @config.server-addr@ -# dataId: ${spring.application.name}-degrade-rules -# groupId: SENTINEL_GROUP -# rule-type: degrade -# data-type: json -# #系统规则 -# system: -# nacos: -# server-addr: @config.server-addr@ -# dataId: ${spring.application.name}-system-rules -# groupId: SENTINEL_GROUP -# rule-type: system -# data-type: json -# #授权规则 -# authority: -# nacos: -# server-addr: @config.server-addr@ -# dataId: ${spring.application.name}-authority-rules -# groupId: SENTINEL_GROUP -# rule-type: authority -# data-type: json -# #热点参数 -# param-flow: -# nacos: -# server-addr: @config.server-addr@ -# dataId: ${spring.application.name}-param-rules -# groupId: SENTINEL_GROUP -# rule-type: param-flow -# data-type: json \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-more/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-more/pom.xml index ed2d4cc8..4784603d 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-more/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-more/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-test org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 公共测试模块 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-rabbitmq/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-rabbitmq/pom.xml index 57ec276c..40c9eead 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-rabbitmq/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-rabbitmq/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-test org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 消息队列测试模块 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-account/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-account/pom.xml index 562bee64..c765ab47 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-account/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-account/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-test-seata org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 分布式事务测试模块 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-order/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-order/pom.xml index 4b359731..1b260f1c 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-order/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-order/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-test-seata org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 分布式事务测试模块 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-product/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-product/pom.xml index 979c2a2c..fd02b7ec 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-product/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/jeecg-cloud-test-seata-product/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-test-seata org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 分布式事务测试模块 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/pom.xml index 53cb8246..9bc4d694 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-seata/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-test org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 jeecg-cloud-test-seata diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/pom.xml index 0825150f..1f1db90b 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/jeecg-cloud-test-shardingsphere/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-test org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/pom.xml index 3f1b10cf..af40a4c7 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-test/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-module org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/Dockerfile b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/Dockerfile index 4f0c1916..b688644a 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/Dockerfile +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/Dockerfile @@ -10,7 +10,7 @@ WORKDIR /jeecg-cloud-xxljob EXPOSE 9080 -ADD ./target/jeecg-cloud-xxljob-3.3.0.jar ./ +ADD ./target/jeecg-cloud-xxljob-3.4.0.jar ./ -CMD java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-xxljob-3.3.0.jar +CMD java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-xxljob-3.4.0.jar diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/README.md b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/README.md index 68e6f81d..ddef2ad8 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/README.md +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/README.md @@ -1,6 +1,6 @@ -- 初始化数据库(mysql) +- 初始化脚本(mysql) - jeecg-cloud-xxljob\doc\db\tables_xxl_job.sql + db\tables_xxl_job.sql - 修改数据库连接 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/pom.xml index b431a90c..a6c02c3f 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/pom.xml @@ -5,7 +5,7 @@ jeecg-cloud-module org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/src/main/resources/application.yml b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/src/main/resources/application.yml index e6226d54..b64afae4 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/src/main/resources/application.yml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/src/main/resources/application.yml @@ -6,8 +6,8 @@ server: spring: datasource: url: jdbc:mysql://jeecg-boot-mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai - username: root - password: root + username: ${MYSQL-USER:root} + password: ${MYSQL-PWD:root} driver-class-name: com.mysql.jdbc.Driver type: com.zaxxer.hikari.HikariDataSource hikari: diff --git a/jeecg-boot/jeecg-boot-module-demo/Dockerfile b/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/Dockerfile similarity index 57% rename from jeecg-boot/jeecg-boot-module-demo/Dockerfile rename to jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/Dockerfile index 5e55c39b..19db8414 100644 --- a/jeecg-boot/jeecg-boot-module-demo/Dockerfile +++ b/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/Dockerfile @@ -4,12 +4,12 @@ MAINTAINER jeecgos@163.com RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -RUN mkdir -p /jeecg-cloud-demo +RUN mkdir -p /jeecg-demo-cloud -WORKDIR /jeecg-cloud-demo +WORKDIR /jeecg-demo-cloud EXPOSE 7002 -ADD ./target/jeecg-boot-module-demo-3.3.0.jar ./ +ADD ./target/jeecg-demo-cloud-start-3.4.0.jar ./ -CMD sleep 10;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-boot-module-demo-3.3.0.jar \ No newline at end of file +CMD sleep 10;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-demo-cloud-start-3.4.0.jar diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/pom.xml new file mode 100644 index 00000000..79b421e1 --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/pom.xml @@ -0,0 +1,41 @@ + + + + jeecg-cloud-module + org.jeecgframework.boot + 3.4.0 + + 4.0.0 + + jeecg-demo-cloud-start + Demo微服务启动 + + + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + + org.jeecgframework.boot + jeecg-boot-starter-job + + + + org.jeecgframework.boot + jeecg-boot-module-demo + ${jeecgboot.version} + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/src/main/java/JeecgDemoCloudApplication.java b/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/src/main/java/JeecgDemoCloudApplication.java new file mode 100644 index 00000000..650ec4ff --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/src/main/java/JeecgDemoCloudApplication.java @@ -0,0 +1,35 @@ +package org.jeecg; + +import org.jeecg.common.base.BaseMap; +import org.jeecg.common.constant.GlobalConstants; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.data.redis.core.RedisTemplate; + +@SpringBootApplication +@EnableFeignClients +public class JeecgDemoCloudApplication implements CommandLineRunner { + @Autowired + private RedisTemplate redisTemplate; + + public static void main(String[] args) { + SpringApplication.run(JeecgDemoCloudApplication.class, args); + } + + /** + * 启动的时候,触发下gateway网关刷新 + * + * 解决: 先启动gateway后启动服务,Swagger接口文档访问不通的问题 + * @param args + */ + @Override + public void run(String... args) { + BaseMap params = new BaseMap(); + params.put(GlobalConstants.HANDLER_NAME, GlobalConstants.LODER_ROUDER_HANDLER); + //刷新网关 + redisTemplate.convertAndSend(GlobalConstants.REDIS_TOPIC_NAME, params); + } +} diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/src/main/resources/application.yml b/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/src/main/resources/application.yml new file mode 100644 index 00000000..9632ac27 --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-demo-cloud-start/src/main/resources/application.yml @@ -0,0 +1,16 @@ +server: + port: 7002 + +spring: + application: + name: jeecg-demo + cloud: + nacos: + config: + server-addr: @config.server-addr@ + discovery: + server-addr: ${spring.cloud.nacos.config.server-addr} + config: + import: + - optional:nacos:jeecg.yaml + - optional:nacos:jeecg-@profile.name@.yaml \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/Dockerfile b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/Dockerfile similarity index 56% rename from jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/Dockerfile rename to jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/Dockerfile index 34017834..14b42360 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/Dockerfile +++ b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/Dockerfile @@ -4,12 +4,12 @@ MAINTAINER jeecgos@163.com RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -RUN mkdir -p /jeecg-cloud-system +RUN mkdir -p /jeecg-system-cloud -WORKDIR /jeecg-cloud-system +WORKDIR /jeecg-system-cloud EXPOSE 7001 -ADD ./target/jeecg-cloud-system-start-3.3.0.jar ./ +ADD ./target/jeecg-system-cloud-start-3.4.0.jar ./ -CMD sleep 10;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-system-start-3.3.0.jar \ No newline at end of file +CMD sleep 10;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-cloud-start-3.4.0.jar diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/pom.xml b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/pom.xml similarity index 90% rename from jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/pom.xml rename to jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/pom.xml index f28da18c..d8a4db06 100644 --- a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/pom.xml @@ -5,11 +5,11 @@ jeecg-cloud-module org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 - jeecg-cloud-system-start - System项目微服务启动 + jeecg-system-cloud-start + System微服务启动 @@ -37,12 +37,12 @@ - + - + diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java similarity index 100% rename from jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java rename to jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/application.yml b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/application.yml new file mode 100644 index 00000000..8db4d80f --- /dev/null +++ b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/application.yml @@ -0,0 +1,16 @@ +server: + #微服务端口 + port: 7001 +spring: + application: + name: jeecg-system + cloud: + nacos: + config: + server-addr: @config.server-addr@ + discovery: + server-addr: ${spring.cloud.nacos.config.server-addr} + config: + import: + - optional:nacos:jeecg.yaml + - optional:nacos:jeecg-@profile.name@.yaml \ No newline at end of file diff --git a/jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/resources/logback-spring.xml b/jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/logback-spring.xml similarity index 100% rename from jeecg-boot/jeecg-cloud-module/jeecg-cloud-system-start/src/main/resources/logback-spring.xml rename to jeecg-boot/jeecg-cloud-module/jeecg-system-cloud-start/src/main/resources/logback-spring.xml diff --git a/jeecg-boot/jeecg-cloud-module/pom.xml b/jeecg-boot/jeecg-cloud-module/pom.xml index db9867d8..8f60438e 100644 --- a/jeecg-boot/jeecg-cloud-module/pom.xml +++ b/jeecg-boot/jeecg-cloud-module/pom.xml @@ -5,20 +5,24 @@ jeecg-boot-parent org.jeecgframework.boot - 3.3.0 + 3.4.0 4.0.0 jeecg-cloud-module pom + jeecg-system-cloud-start + jeecg-demo-cloud-start jeecg-cloud-gateway + + jeecg-cloud-nacos jeecg-cloud-sentinel jeecg-cloud-monitor - jeecg-cloud-system-start jeecg-cloud-xxljob - jeecg-cloud-test + diff --git a/jeecg-boot/pom.xml b/jeecg-boot/pom.xml index 8ecee4c0..3c671eaa 100644 --- a/jeecg-boot/pom.xml +++ b/jeecg-boot/pom.xml @@ -2,7 +2,7 @@ 4.0.0 org.jeecgframework.boot jeecg-boot-parent - 3.3.0 + 3.4.0 pom JEECG BOOT ${project.version} @@ -14,14 +14,14 @@ - 3.3.0 + 3.4.0 1.8 UTF-8 - + false 2021.0.3 - 2021.1 + 2021.0.1.0 2.0.4 2.2.0 @@ -70,18 +70,6 @@ jeecg-boot-module-system - - - jeecg - jeecg Repository - http://maven.jeecg.com:8090/nexus/content/repositories/jeecg - - - jeecg-snapshots - jeecg Snapshot Repository - http://maven.jeecg.com:8090/nexus/content/repositories/snapshots/ - - aliyun @@ -99,6 +87,17 @@ false + + jeecg-snapshots + jeecg-snapshots Repository + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + @@ -154,7 +153,7 @@ org.jeecgframework.boot - jeecg-boot-base-tools + jeecg-boot-common ${jeecgboot.version} @@ -241,39 +240,7 @@ dom4j ${dom4j.version}
- - - org.redisson - redisson - ${redisson.version} - - - - - com.google.guava - guava - ${guava.version} - - - - - cn.hutool - hutool-core - ${hutool.version} - - - cn.hutool - hutool-crypto - ${hutool.version} - - - - - commons-beanutils - commons-beanutils - ${commons-beanutils.version} - - + commons-fileupload commons-fileupload @@ -307,7 +274,7 @@ okhttp 4.4.1 - + io.minio minio @@ -405,6 +372,20 @@ + + + + jeecg + jeecg Repository + http://maven.jeecg.com:8090/nexus/content/repositories/jeecg + + + jeecg-snapshots + jeecg Snapshot Repository + http://maven.jeecg.com:8090/nexus/content/repositories/snapshots/ + + + @@ -417,20 +398,8 @@ dev - - jeecg - + jeecg-boot-nacos:8848 - - - - nacos - - nacos - - DEFAULT_GROUP - - jeecg-boot-nacos:8848 @@ -439,42 +408,18 @@ test - - jeecg - + jeecg-boot-nacos:8848 - - - - nacos - - nacos - - DEFAULT_GROUP - - jeecg-boot-nacos:8848 prod - + prod - - jeecg - + jeecg-boot-nacos:8848 - - - - nacos - - nacos - - DEFAULT_GROUP - - jeecg-boot-nacos:8848 @@ -485,8 +430,7 @@ true - - jeecg-boot-starter + jeecg-cloud-module