diff --git a/LOG_FILE_IS_UNDEFINED b/LOG_FILE_IS_UNDEFINED new file mode 100644 index 0000000..9fc72b0 --- /dev/null +++ b/LOG_FILE_IS_UNDEFINED @@ -0,0 +1,71 @@ +2024-10-21 18:32:21.924 |  INFO 143016 | main [TID: N/A] c.i.y.module.base.BaseServerApplication  | Starting BaseServerApplication using Java 17.0.9 on pch-PC with PID 143016 (/home/pch/xiangmu/yudao_cloud/yudao-cloud-master/yudao-module-base/yudao-module-base-biz/target/classes started by pch in /home/pch/xiangmu/yudao_cloud/yudao-cloud-master) +2024-10-21 18:32:21.929 |  INFO 143016 | main [TID: N/A] c.i.y.module.base.BaseServerApplication  | The following 1 profile is active: "local" +2024-10-21 18:32:22.142 |  WARN 143016 | main [TID: N/A] c.a.c.n.c.NacosConfigDataLoader  | [Nacos Config] config[dataId=base-server-local.yaml, group=DEFAULT_GROUP] is empty +2024-10-21 18:32:22.793 |  WARN 143016 | main [TID: N/A] ConfigServletWebServerApplicationContext | Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'infra-server.FeignClientSpecification' defined in null: Cannot register bean definition [Generic bean: class [org.springframework.cloud.openfeign.FeignClientSpecification]; scope=; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] for bean 'infra-server.FeignClientSpecification': There is already [Generic bean: class [org.springframework.cloud.openfeign.FeignClientSpecification]; scope=; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] bound. +2024-10-21 18:32:22.804 |  INFO 143016 | main [TID: N/A] ConditionEvaluationReportLoggingListener | + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +2024-10-21 18:32:22.818 | ERROR 143016 | main [TID: N/A] o.s.b.d.LoggingFailureAnalysisReporter  | + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +The bean 'infra-server.FeignClientSpecification' could not be registered. A bean with that name has already been defined and overriding is disabled. + +Action: + +Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true + +2024-10-21 18:32:22.819 |  WARN 143016 | Thread-1 [TID: N/A] c.a.n.common.http.HttpClientBeanHolder  | [HttpClientBeanHolder] Start destroying common HttpClient +2024-10-21 18:32:22.819 |  WARN 143016 | Thread-6 [TID: N/A] c.a.nacos.common.notify.NotifyCenter  | [NotifyCenter] Start destroying Publisher +2024-10-21 18:32:22.819 |  WARN 143016 | Thread-6 [TID: N/A] c.a.nacos.common.notify.NotifyCenter  | [NotifyCenter] Destruction of the end +2024-10-21 18:32:22.819 |  WARN 143016 | Thread-1 [TID: N/A] c.a.n.common.http.HttpClientBeanHolder  | [HttpClientBeanHolder] Destruction of the end +2024-10-21 18:34:00.840 |  INFO 143462 | main [TID: N/A] c.i.y.module.base.BaseServerApplication  | Starting BaseServerApplication using Java 17.0.9 on pch-PC with PID 143462 (/home/pch/xiangmu/yudao_cloud/yudao-cloud-master/yudao-module-base/yudao-module-base-biz/target/classes started by pch in /home/pch/xiangmu/yudao_cloud/yudao-cloud-master) +2024-10-21 18:34:00.842 |  INFO 143462 | main [TID: N/A] c.i.y.module.base.BaseServerApplication  | The following 1 profile is active: "local" +2024-10-21 18:34:01.031 |  WARN 143462 | main [TID: N/A] c.a.c.n.c.NacosConfigDataLoader  | [Nacos Config] config[dataId=base-server-local.yaml, group=DEFAULT_GROUP] is empty +2024-10-21 18:34:01.996 |  INFO 143462 | main [TID: N/A] .s.d.r.c.RepositoryConfigurationDelegate | Multiple Spring Data modules found, entering strict repository configuration mode +2024-10-21 18:34:01.999 |  INFO 143462 | main [TID: N/A] .s.d.r.c.RepositoryConfigurationDelegate | Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2024-10-21 18:34:02.017 |  INFO 143462 | main [TID: N/A] .s.d.r.c.RepositoryConfigurationDelegate | Finished Spring Data repository scanning in 4 ms. Found 0 Redis repository interfaces. +2024-10-21 18:34:02.171 |  WARN 143462 | main [TID: N/A] ConfigServletWebServerApplicationContext | Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration#MapperScannerRegistrar#0' defined in null: Could not resolve placeholder 'yudao.info.base-package' in value "${yudao.info.base-package}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'yudao.info.base-package' in value "${yudao.info.base-package}" +2024-10-21 18:34:02.189 |  INFO 143462 | main [TID: N/A] ConditionEvaluationReportLoggingListener | + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +2024-10-21 18:34:02.205 | ERROR 143462 | main [TID: N/A] o.s.boot.SpringApplication  | Application run failed + +org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'cn.iocoder.yudao.framework.mybatis.config.YudaoMybatisAutoConfiguration#MapperScannerRegistrar#0' defined in null: Could not resolve placeholder 'yudao.info.base-package' in value "${yudao.info.base-package}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'yudao.info.base-package' in value "${yudao.info.base-package}" + at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:230) ~[spring-beans-5.3.39.jar:5.3.39] + at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.processProperties(PropertySourcesPlaceholderConfigurer.java:198) ~[spring-context-5.3.39.jar:5.3.39] + at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.postProcessBeanFactory(PropertySourcesPlaceholderConfigurer.java:173) ~[spring-context-5.3.39.jar:5.3.39] + at org.mybatis.spring.mapper.MapperScannerConfigurer.processPropertyPlaceHolders(MapperScannerConfigurer.java:406) ~[mybatis-spring-2.1.2.jar:2.1.2] + at org.mybatis.spring.mapper.MapperScannerConfigurer.postProcessBeanDefinitionRegistry(MapperScannerConfigurer.java:360) ~[mybatis-spring-2.1.2.jar:2.1.2] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) ~[spring-context-5.3.39.jar:5.3.39] + at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:142) ~[spring-context-5.3.39.jar:5.3.39] + at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:756) ~[spring-context-5.3.39.jar:5.3.39] + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:573) ~[spring-context-5.3.39.jar:5.3.39] + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.18.jar:2.7.18] + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) ~[spring-boot-2.7.18.jar:2.7.18] + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:409) ~[spring-boot-2.7.18.jar:2.7.18] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-2.7.18.jar:2.7.18] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300) ~[spring-boot-2.7.18.jar:2.7.18] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289) ~[spring-boot-2.7.18.jar:2.7.18] + at cn.iocoder.yudao.module.base.BaseServerApplication.main(BaseServerApplication.java:20) ~[classes/:na] +Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'yudao.info.base-package' in value "${yudao.info.base-package}" + at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180) ~[spring-core-5.3.39.jar:5.3.39] + at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-5.3.39.jar:5.3.39] + at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) ~[spring-core-5.3.39.jar:5.3.39] + at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-5.3.39.jar:5.3.39] + at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:191) ~[spring-context-5.3.39.jar:5.3.39] + at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveStringValue(BeanDefinitionVisitor.java:296) ~[spring-beans-5.3.39.jar:5.3.39] + at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveValue(BeanDefinitionVisitor.java:222) ~[spring-beans-5.3.39.jar:5.3.39] + at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitPropertyValues(BeanDefinitionVisitor.java:147) ~[spring-beans-5.3.39.jar:5.3.39] + at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitBeanDefinition(BeanDefinitionVisitor.java:85) ~[spring-beans-5.3.39.jar:5.3.39] + at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:227) ~[spring-beans-5.3.39.jar:5.3.39] + ... 15 common frames omitted + +2024-10-21 18:34:02.206 |  WARN 143462 | Thread-6 [TID: N/A] c.a.nacos.common.notify.NotifyCenter  | [NotifyCenter] Start destroying Publisher +2024-10-21 18:34:02.207 |  WARN 143462 | Thread-6 [TID: N/A] c.a.nacos.common.notify.NotifyCenter  | [NotifyCenter] Destruction of the end +2024-10-21 18:34:02.207 |  WARN 143462 | Thread-1 [TID: N/A] c.a.n.common.http.HttpClientBeanHolder  | [HttpClientBeanHolder] Start destroying common HttpClient +2024-10-21 18:34:02.207 |  WARN 143462 | Thread-1 [TID: N/A] c.a.n.common.http.HttpClientBeanHolder  | [HttpClientBeanHolder] Destruction of the end diff --git a/pom.xml b/pom.xml index b5e980c..eae1b61 100644 --- a/pom.xml +++ b/pom.xml @@ -22,6 +22,7 @@ yudao-module-mall yudao-module-erp yudao-module-crm + yudao-module-base diff --git a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java index 6c01b94..9d410bb 100644 --- a/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java +++ b/yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/banner/core/BannerApplicationRunner.java @@ -19,32 +19,24 @@ public class BannerApplicationRunner implements ApplicationRunner { public void run(ApplicationArguments args) { ThreadUtil.execute(() -> { ThreadUtil.sleep(1, TimeUnit.SECONDS); // 延迟 1 秒,保证输出到结尾 - log.info("\n----------------------------------------------------------\n\t" + - "项目启动成功!\n\t" + - "接口文档: \t{} \n\t" + - "开发文档: \t{} \n\t" + - "视频教程: \t{} \n" + - "----------------------------------------------------------", - "https://cloud.iocoder.cn/api-doc/", - "https://cloud.iocoder.cn", - "https://t.zsxq.com/02Yf6M7Qn"); + log.info("\n-------------------------代码如诗心似弦, 昼夜不倦解难关。 屏前独坐灯如昼, 梦想成真在眼前。--------------OK"); // 数据报表 - System.out.println("[报表模块 yudao-module-report 教程][参考 https://cloud.iocoder.cn/report/ 开启]"); + //System.out.println("[报表模块 yudao-module-report 教程][参考 https://cloud.iocoder.cn/report/ 开启]"); // 工作流 - System.out.println("[工作流模块 yudao-module-bpm 教程][参考 https://cloud.iocoder.cn/bpm/ 开启]"); + //System.out.println("[工作流模块 yudao-module-bpm 教程][参考 https://cloud.iocoder.cn/bpm/ 开启]"); // 商城系统 - System.out.println("[商城系统 yudao-module-mall 教程][参考 https://cloud.iocoder.cn/mall/build/ 开启]"); + //System.out.println("[商城系统 yudao-module-mall 教程][参考 https://cloud.iocoder.cn/mall/build/ 开启]"); // ERP 系统 - System.out.println("[ERP 系统 yudao-module-erp - 教程][参考 https://cloud.iocoder.cn/erp/build/ 开启]"); + //System.out.println("[ERP 系统 yudao-module-erp - 教程][参考 https://cloud.iocoder.cn/erp/build/ 开启]"); // CRM 系统 - System.out.println("[CRM 系统 yudao-module-crm - 教程][参考 https://cloud.iocoder.cn/crm/build/ 开启]"); + //System.out.println("[CRM 系统 yudao-module-crm - 教程][参考 https://cloud.iocoder.cn/crm/build/ 开启]"); // 微信公众号 - System.out.println("[微信公众号 yudao-module-mp 教程][参考 https://cloud.iocoder.cn/mp/build/ 开启]"); + //System.out.println("[微信公众号 yudao-module-mp 教程][参考 https://cloud.iocoder.cn/mp/build/ 开启]"); // 支付平台 - System.out.println("[支付系统 yudao-module-pay - 教程][参考 https://cloud.iocoder.cn/pay/build/ 开启]"); + //System.out.println("[支付系统 yudao-module-pay - 教程][参考 https://cloud.iocoder.cn/pay/build/ 开启]"); // AI 大模型 - System.out.println("[AI 大模型 yudao-module-ai - 教程][参考 https://cloud.iocoder.cn/ai/build/ 开启]"); + //System.out.println("[AI 大模型 yudao-module-ai - 教程][参考 https://cloud.iocoder.cn/ai/build/ 开启]"); }); } diff --git a/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/util/BannerApplicationRunner.java b/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/util/BannerApplicationRunner.java index 9ab9e81..a9aac53 100644 --- a/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/util/BannerApplicationRunner.java +++ b/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/util/BannerApplicationRunner.java @@ -21,32 +21,24 @@ public class BannerApplicationRunner implements ApplicationRunner { public void run(ApplicationArguments args) { ThreadUtil.execute(() -> { ThreadUtil.sleep(1, TimeUnit.SECONDS); // 延迟 1 秒,保证输出到结尾 - log.info("\n----------------------------------------------------------\n\t" + - "项目启动成功!\n\t" + - "接口文档: \t{} \n\t" + - "开发文档: \t{} \n\t" + - "视频教程: \t{} \n" + - "----------------------------------------------------------", - "https://cloud.iocoder.cn/api-doc/", - "https://cloud.iocoder.cn", - "https://t.zsxq.com/02Yf6M7Qn"); + log.info("\n-------------------------代码如诗心似弦, 昼夜不倦解难关。 屏前独坐灯如昼, 梦想成真在眼前。--------------OK"); // 数据报表 - System.out.println("[报表模块 yudao-module-report 教程][参考 https://cloud.iocoder.cn/report/ 开启]"); + //System.out.println("[报表模块 yudao-module-report 教程][参考 https://cloud.iocoder.cn/report/ 开启]"); // 工作流 - System.out.println("[工作流模块 yudao-module-bpm 教程][参考 https://cloud.iocoder.cn/bpm/ 开启]"); + //System.out.println("[工作流模块 yudao-module-bpm 教程][参考 https://cloud.iocoder.cn/bpm/ 开启]"); // 商城系统 - System.out.println("[商城系统 yudao-module-mall 教程][参考 https://cloud.iocoder.cn/mall/build/ 开启]"); + //System.out.println("[商城系统 yudao-module-mall 教程][参考 https://cloud.iocoder.cn/mall/build/ 开启]"); // ERP 系统 - System.out.println("[ERP 系统 yudao-module-erp - 教程][参考 https://cloud.iocoder.cn/erp/build/ 开启]"); + //System.out.println("[ERP 系统 yudao-module-erp - 教程][参考 https://cloud.iocoder.cn/erp/build/ 开启]"); // CRM 系统 - System.out.println("[CRM 系统 yudao-module-crm - 教程][参考 https://cloud.iocoder.cn/crm/build/ 开启]"); + //System.out.println("[CRM 系统 yudao-module-crm - 教程][参考 https://cloud.iocoder.cn/crm/build/ 开启]"); // 微信公众号 - System.out.println("[微信公众号 yudao-module-mp 教程][参考 https://cloud.iocoder.cn/mp/build/ 开启]"); + //System.out.println("[微信公众号 yudao-module-mp 教程][参考 https://cloud.iocoder.cn/mp/build/ 开启]"); // 支付平台 - System.out.println("[支付系统 yudao-module-pay - 教程][参考 https://doc.iocoder.cn/pay/build/ 开启]"); + //System.out.println("[支付系统 yudao-module-pay - 教程][参考 https://doc.iocoder.cn/pay/build/ 开启]"); // AI 大模型 - System.out.println("[AI 大模型 yudao-module-ai - 教程][参考 https://cloud.iocoder.cn/ai/build/ 开启]"); + //System.out.println("[AI 大模型 yudao-module-ai - 教程][参考 https://cloud.iocoder.cn/ai/build/ 开启]"); }); } diff --git a/yudao-module-base/pom.xml b/yudao-module-base/pom.xml new file mode 100644 index 0000000..1dad5e4 --- /dev/null +++ b/yudao-module-base/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + cn.iocoder.cloud + yudao + ${revision} + + + yudao-module-base + pom + + + 系统的基础功能模块 + + + yudao-module-base-api + yudao-module-base-biz + + \ No newline at end of file diff --git a/yudao-module-base/yudao-module-base-api/pom.xml b/yudao-module-base/yudao-module-base-api/pom.xml new file mode 100644 index 0000000..2096710 --- /dev/null +++ b/yudao-module-base/yudao-module-base-api/pom.xml @@ -0,0 +1,28 @@ + + + 4.0.0 + + cn.iocoder.cloud + yudao-module-base + ${revision} + + + yudao-module-base-api + jar + ${project.artifactId} + + + 系统的基础功能模块 + + + + + cn.iocoder.cloud + yudao-common + + + + + \ No newline at end of file diff --git a/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/base/api/package-info.java b/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/base/api/package-info.java new file mode 100644 index 0000000..404a261 --- /dev/null +++ b/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/base/api/package-info.java @@ -0,0 +1,4 @@ +/** + * crm API 包,定义暴露给其它模块的 API + */ +package cn.iocoder.yudao.module.base.api; diff --git a/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/base/enums/ApiConstants.java b/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/base/enums/ApiConstants.java new file mode 100644 index 0000000..0269385 --- /dev/null +++ b/yudao-module-base/yudao-module-base-api/src/main/java/cn/iocoder/yudao/module/base/enums/ApiConstants.java @@ -0,0 +1,23 @@ +package cn.iocoder.yudao.module.base.enums; + +import cn.iocoder.yudao.framework.common.enums.RpcConstants; + +/** + * API 相关的枚举 + * + * @author 芋道源码 + */ +public class ApiConstants { + + /** + * 服务名 + * + * 注意,需要保证和 spring.application.name 保持一致 + */ + public static final String NAME = "base-server"; + + public static final String PREFIX = RpcConstants.RPC_API_PREFIX + "/base"; + + public static final String VERSION = "1.0.0"; + +} diff --git a/yudao-module-base/yudao-module-base-biz/pom.xml b/yudao-module-base/yudao-module-base-biz/pom.xml new file mode 100644 index 0000000..39526c3 --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/pom.xml @@ -0,0 +1,135 @@ + + + 4.0.0 + + cn.iocoder.cloud + yudao-module-base + ${revision} + + + yudao-module-base-biz + jar + + ${project.artifactId} + + 系统的基础功能模块 + + + + + + cn.iocoder.cloud + yudao-spring-boot-starter-env + + + + + cn.iocoder.cloud + yudao-module-system-api + ${revision} + + + + cn.iocoder.cloud + yudao-module-bpm-api + ${revision} + + + + cn.iocoder.cloud + yudao-module-base-api + ${revision} + + + + + cn.iocoder.cloud + yudao-spring-boot-starter-biz-ip + + + cn.iocoder.cloud + yudao-spring-boot-starter-biz-tenant + + + + + cn.iocoder.cloud + yudao-spring-boot-starter-web + + + + + cn.iocoder.cloud + yudao-spring-boot-starter-mybatis + + + + cn.iocoder.cloud + yudao-spring-boot-starter-redis + + + + + cn.iocoder.cloud + yudao-spring-boot-starter-rpc + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + + + + + + + cn.iocoder.cloud + yudao-spring-boot-starter-excel + + + + + cn.iocoder.cloud + yudao-spring-boot-starter-monitor + + + + + cn.iocoder.cloud + yudao-spring-boot-starter-test + + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot.version} + + + + repackage + + + + + + + \ No newline at end of file diff --git a/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/BaseServerApplication.java b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/BaseServerApplication.java new file mode 100644 index 0000000..6633b52 --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/BaseServerApplication.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.base; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 项目的启动类 + *

+ * 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章 + * 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章 + * 如果你碰到启动的问题,请认真阅读 https://cloud.iocoder.cn/quick-start/ 文章 + * + * @author 芋道源码 + */ +@SpringBootApplication +public class BaseServerApplication { + + public static void main(String[] args) { + + SpringApplication.run(BaseServerApplication.class, args); + + } + +} diff --git a/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DemoTestController.java b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DemoTestController.java new file mode 100644 index 0000000..ba3293b --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/controller/admin/DemoTestController.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.base.controller.admin; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - Test") +@RestController +@RequestMapping("/demo/test") +@Validated +public class DemoTestController { + + @GetMapping("/get") + @Operation(summary = "获取 test 信息") + public CommonResult get() { + return success("true"); + } + +} \ No newline at end of file diff --git a/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/controller/app/AppDemoTestController.java b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/controller/app/AppDemoTestController.java new file mode 100644 index 0000000..6a007ac --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/controller/app/AppDemoTestController.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.base.controller.app; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "用户 App - Test") +@RestController +@RequestMapping("/demo/test") +@Validated +public class AppDemoTestController { + + @GetMapping("/get") + @Operation(summary = "获取 test 信息") + public CommonResult get() { + return success("true"); + } + +} \ No newline at end of file diff --git a/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/package-info.java b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/package-info.java new file mode 100644 index 0000000..51b4426 --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/package-info.java @@ -0,0 +1,6 @@ +/** + * 属于 member 模块的 framework 封装 + * + * @author 芋道源码 + */ +package cn.iocoder.yudao.module.base.framework; diff --git a/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/rpc/config/RpcConfiguration.java b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/rpc/config/RpcConfiguration.java new file mode 100644 index 0000000..18643c3 --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/rpc/config/RpcConfiguration.java @@ -0,0 +1,13 @@ +package cn.iocoder.yudao.module.base.framework.rpc.config; + +import cn.iocoder.yudao.module.system.api.logger.LoginLogApi; +import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; +import cn.iocoder.yudao.module.system.api.social.SocialClientApi; +import cn.iocoder.yudao.module.system.api.social.SocialUserApi; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Configuration; + +@Configuration(proxyBeanMethods = false) +@EnableFeignClients(clients = {SmsCodeApi.class, LoginLogApi.class, SocialUserApi.class, SocialClientApi.class}) +public class RpcConfiguration { +} diff --git a/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/rpc/package-info.java b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/rpc/package-info.java new file mode 100644 index 0000000..e332213 --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/rpc/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.base.framework.rpc; diff --git a/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/security/config/SecurityConfiguration.java b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/security/config/SecurityConfiguration.java new file mode 100644 index 0000000..e148641 --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/security/config/SecurityConfiguration.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.base.framework.security.config; + +import cn.iocoder.yudao.framework.security.config.AuthorizeRequestsCustomizer; +import cn.iocoder.yudao.module.base.enums.ApiConstants; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer; + +/** + * Base 模块的 Security 配置 + */ +@Configuration("baseSecurityConfiguration") +public class SecurityConfiguration { + + @Bean("baseAuthorizeRequestsCustomizer") + public AuthorizeRequestsCustomizer authorizeRequestsCustomizer() { + return new AuthorizeRequestsCustomizer() { + + @Override + public void customize(ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry registry) { + // Swagger 接口文档 + registry.antMatchers("/v3/api-docs/**").permitAll() + .antMatchers("/webjars/**").permitAll() + .antMatchers("/swagger-ui").permitAll() + .antMatchers("/swagger-ui/**").permitAll(); + // Spring Boot Actuator 的安全配置 + registry.antMatchers("/actuator").anonymous() + .antMatchers("/actuator/**").anonymous(); + // Druid 监控 + registry.antMatchers("/druid/**").anonymous(); + // RPC 服务的安全配置 + registry.antMatchers(ApiConstants.PREFIX + "/**").permitAll(); + } + + }; + } + +} diff --git a/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/security/core/package-info.java b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/security/core/package-info.java new file mode 100644 index 0000000..28d9b3e --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/java/cn/iocoder/yudao/module/base/framework/security/core/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package cn.iocoder.yudao.module.base.framework.security.core; diff --git a/yudao-module-base/yudao-module-base-biz/src/main/resources/application-local.yaml b/yudao-module-base/yudao-module-base-biz/src/main/resources/application-local.yaml new file mode 100644 index 0000000..c7c65c9 --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/resources/application-local.yaml @@ -0,0 +1,131 @@ +--- #################### 注册中心 + 配置中心相关配置 #################### + +spring: + cloud: + nacos: + server-addr: 127.0.0.1:8848 # Nacos 服务器地址 + username: nacos # Nacos 账号 + password: nacos # Nacos 密码 + discovery: # 【配置中心】配置项 + namespace: dev # 命名空间。这里使用 dev 开发环境 + group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP + metadata: + version: 1.0.0 # 服务实例的版本号,可用于灰度发布 + config: # 【注册中心】配置项 + namespace: dev # 命名空间。这里使用 dev 开发环境 + group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP + +--- #################### 数据库相关配置 #################### +spring: + # 数据源配置项 + autoconfigure: + exclude: + - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源 + - de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置 + datasource: + druid: # Druid 【监控】相关的全局配置 + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + allow: # 设置白名单,不填则允许所有访问 + url-pattern: /druid/* + login-username: # 控制台管理用户名和密码 + login-password: + filter: + stat: + enabled: true + log-slow-sql: true # 慢 SQL 记录 + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: # 多数据源配置 + druid: # Druid 【连接池】相关的全局配置 + initial-size: 1 # 初始连接数 + min-idle: 1 # 最小连接池数量 + max-active: 20 # 最大连接池数量 + max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 + time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 + min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 + max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒 + validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 + test-while-idle: true + test-on-borrow: false + test-on-return: false + primary: master + datasource: + master: + url: jdbc:mysql://192.168.1.28:3306/yudao-cloud?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + # url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=true&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true # MySQL Connector/J 5.X 连接的示例 + # url: jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro # PostgreSQL 连接的示例 + # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 + # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=ruoyi-vue-pro # SQLServer 连接的示例 + # url: jdbc:dm://10.211.55.4:5236?schema=RUOYI_VUE_PRO # DM 连接的示例 + username: root + password: P@ss1pch + # username: sa # SQL Server 连接的示例 + # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W # SQL Server 连接的示例 + # username: SYSDBA # DM 连接的示例 + # password: SYSDBA # DM 连接的示例 + slave: # 模拟从库,可根据自己需要修改 + lazy: true # 开启懒加载,保证启动速度 + url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: root + password: 123456 + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + redis: + host: 192.168.1.28 # 地址 + port: 6379 # 端口 + database: 0 # 数据库索引 + password: 123456 # 密码,建议生产环境开启 + +--- #################### MQ 消息队列相关配置 #################### + +--- #################### 定时任务相关配置 #################### + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项 +lock4j: + acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 + expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 + +--- #################### 监控相关配置 #################### + +# Actuator 监控端点的配置项 +management: + endpoints: + web: + base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator + exposure: + include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 + +# Spring Boot Admin 配置项 +spring: + boot: + admin: + # Spring Boot Admin Client 客户端的相关配置 + client: + instance: + service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME] + +# 日志文件配置 +logging: + level: + # 配置自己写的 MyBatis Mapper 打印日志 + cn.iocoder.yudao.module.mp.dal.mysql: debug + org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO 芋艿:先禁用,Spring Boot 3.X 存在部分错误的 WARN 提示 + +--- #################### 芋道相关配置 #################### + +# 芋道配置项,设置当前项目所有自定义的配置 +yudao: + env: # 多环境的配置项 + tag: ${HOSTNAME} + security: + mock-enable: true + access-log: # 访问日志的配置项 + enable: false \ No newline at end of file diff --git a/yudao-module-base/yudao-module-base-biz/src/main/resources/application-localbk.yaml b/yudao-module-base/yudao-module-base-biz/src/main/resources/application-localbk.yaml new file mode 100644 index 0000000..7b39cc7 --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/resources/application-localbk.yaml @@ -0,0 +1,135 @@ +--- #################### 注册中心 + 配置中心相关配置 #################### + +spring: + cloud: + nacos: + server-addr: 127.0.0.1:8848 # Nacos 服务器地址 + username: # Nacos 账号 + password: # Nacos 密码 + discovery: # 【配置中心】配置项 + namespace: dev # 命名空间。这里使用 dev 开发环境 + group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP + metadata: + version: 1.0.0 # 服务实例的版本号,可用于灰度发布 + config: # 【注册中心】配置项 + namespace: dev # 命名空间。这里使用 dev 开发环境 + group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP + +--- #################### 数据库相关配置 #################### +spring: + # 数据源配置项 + autoconfigure: + exclude: + - de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置 + datasource: + druid: # Druid 【监控】相关的全局配置 + web-stat-filter: + enabled: true + stat-view-servlet: + enabled: true + allow: # 设置白名单,不填则允许所有访问 + url-pattern: /druid/* + login-username: # 控制台管理用户名和密码 + login-password: + filter: + stat: + enabled: true + log-slow-sql: true # 慢 SQL 记录 + slow-sql-millis: 100 + merge-sql: true + wall: + config: + multi-statement-allow: true + dynamic: # 多数据源配置 + druid: # Druid 【连接池】相关的全局配置 + initial-size: 1 # 初始连接数 + min-idle: 1 # 最小连接池数量 + max-active: 20 # 最大连接池数量 + max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 + time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 + min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 + max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒 + validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 + test-while-idle: true + test-on-borrow: false + test-on-return: false + primary: master + datasource: + master: + url: jdbc:mysql://192.168.1.28:3306/yudao-cloud?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例 + # url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=true&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true # MySQL Connector/J 5.X 连接的示例 + # url: jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro # PostgreSQL 连接的示例 + # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 + # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=ruoyi-vue-pro # SQLServer 连接的示例 + # url: jdbc:dm://10.211.55.4:5236?schema=RUOYI_VUE_PRO # DM 连接的示例 + username: root + password: P@ss1pch + # username: sa # SQL Server 连接的示例 + # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W # SQL Server 连接的示例 + # username: SYSDBA # DM 连接的示例 + # password: SYSDBA # DM 连接的示例 + slave: # 模拟从库,可根据自己需要修改 + lazy: true # 开启懒加载,保证启动速度 + url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true + username: root + password: 123456 + + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 + redis: + host: 192.168.1.28 # 地址 + port: 6379 # 端口 + database: 0 # 数据库索引 + password: 123456 # 密码,建议生产环境开启 + +--- #################### MQ 消息队列相关配置 #################### + +--- #################### 定时任务相关配置 #################### +xxl: + job: + enabled: false # 是否开启调度中心,默认为 true 开启 + admin: + addresses: http://127.0.0.1:9090/xxl-job-admin # 调度中心部署跟地址 + +--- #################### 服务保障相关配置 #################### + +# Lock4j 配置项 +lock4j: + acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒 + expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒 + +--- #################### 监控相关配置 #################### + +# Actuator 监控端点的配置项 +#management: +# endpoints: +# web: +# base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator +# exposure: +# include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 + +# Spring Boot Admin 配置项 +spring: + boot: + admin: + # Spring Boot Admin Client 客户端的相关配置 + client: + instance: + service-host-type: IP # 注册实例时,优先使用 IP [IP, HOST_NAME, CANONICAL_HOST_NAME] + +# 日志文件配置 +logging: + level: + # 配置自己写的 MyBatis Mapper 打印日志 + cn.iocoder.yudao.module.base.dal.mysql: debug + org.springframework.context.support.PostProcessorRegistrationDelegate: ERROR # TODO 芋艿:先禁用,Spring Boot 3.X 存在部分错误的 WARN 提示 + +--- #################### 芋道相关配置 #################### + +# 芋道配置项,设置当前项目所有自定义的配置 +yudao: + env: # 多环境的配置项 + tag: ${HOSTNAME} + security: + mock-enable: true + access-log: # 访问日志的配置项 + enable: false \ No newline at end of file diff --git a/yudao-module-base/yudao-module-base-biz/src/main/resources/application.yaml b/yudao-module-base/yudao-module-base-biz/src/main/resources/application.yaml new file mode 100644 index 0000000..b63547f --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/resources/application.yaml @@ -0,0 +1,124 @@ +spring: + application: + name: base-server + + profiles: + active: local + + main: + allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。 + allow-bean-definition-overriding: true # 允许 Bean 覆盖,例如说 Feign 等会存在重复定义的服务 + + config: + import: + - optional:classpath:application-${spring.profiles.active}.yaml # 加载【本地】配置 + - optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置 + + # Servlet 配置 + servlet: + # 文件上传相关配置项 + multipart: + max-file-size: 16MB # 单个文件大小 + max-request-size: 32MB # 设置总上传的文件大小 + + # Jackson 配置项 + jackson: + serialization: + write-dates-as-timestamps: true # 设置 LocalDateTime 的格式,使用时间戳 + write-date-timestamps-as-nanoseconds: false # 设置不使用 nanoseconds 的格式。例如说 1611460870.401,而是直接 1611460870401 + write-durations-as-timestamps: true # 设置 Duration 的格式,使用时间戳 + fail-on-empty-beans: false # 允许序列化无属性的 Bean + + # Cache 配置项 + cache: + type: REDIS + redis: + time-to-live: 1h # 设置过期时间为 1 小时 + +server: + port: 48091 + +logging: + file: + name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径 + +--- #################### 接口文档配置 #################### + +springdoc: + api-docs: + enabled: true # 1. 是否开启 Swagger 接文档的元数据 + path: /v3/api-docs + swagger-ui: + enabled: true # 2.1 是否开启 Swagger 文档的官方 UI 界面 + path: /swagger-ui + default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档 + +knife4j: + enable: true # 2.2 是否开启 Swagger 文档的 Knife4j UI 界面 + setting: + language: zh_cn + +# MyBatis Plus 的配置项 +mybatis-plus: + configuration: + map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。 + global-config: + db-config: + id-type: NONE # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。 + # id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库 + # id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库 + # id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解 + logic-delete-value: 1 # 逻辑已删除值(默认为 1) + logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) + banner: false # 关闭控制台的 Banner 打印 + type-aliases-package: ${yudao.info.base-package}.dal.dataobject + encryptor: + password: XDV71a+xqStEA3WH # 加解密的秘钥,可使用 https://www.imaegoo.com/2020/aes-key-generator/ 网站生成 + +mybatis-plus-join: + banner: false # 关闭控制台的 Banner 打印 + +# Spring Data Redis 配置 +spring: + data: + redis: + repositories: + enabled: false # 项目未使用到 Spring Data Redis 的 Repository,所以直接禁用,保证启动速度 + +# VO 转换(数据翻译)相关 +easy-trans: + is-enable-global: true # 启用全局翻译(拦截所有 SpringMVC ResponseBody 进行自动翻译 )。如果对于性能要求很高可关闭此配置,或通过 @IgnoreTrans 忽略某个接口 + +--- #################### MQ 消息队列相关配置 #################### + +--- #################### 定时任务相关配置 #################### + +xxl: + job: + executor: + appname: ${spring.application.name} # 执行器 AppName + logpath: ${user.home}/logs/xxl-job/${spring.application.name} # 执行器运行日志文件存储磁盘路径 + accessToken: default_token # 执行器通讯TOKEN + +--- #################### 芋道相关配置 #################### + +yudao: + info: + version: 1.0.0 + base-package: cn.iocoder.yudao.module.base + web: + admin-ui: + url: http://dashboard.yudao.iocoder.cn # Admin 管理后台 UI 的地址 + xss: + enable: false + exclude-urls: # 如下 url,仅仅是为了演示,去掉配置也没关系 + - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 + swagger: + title: 管理后台 + description: 提供管理员管理的所有功能 + version: ${yudao.info.version} + tenant: # 多租户相关配置项 + enable: true + ignore-urls: + +debug: false diff --git a/yudao-module-base/yudao-module-base-biz/src/main/resources/application11.yaml b/yudao-module-base/yudao-module-base-biz/src/main/resources/application11.yaml new file mode 100644 index 0000000..31846cf --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/resources/application11.yaml @@ -0,0 +1,62 @@ +spring: + application: + name: base-server + + profiles: + active: local + + main: + allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。 + allow-bean-definition-overriding: true # 允许 Bean 覆盖,例如说 Feign 等会存在重复定义的服务 + config: + import: + - optional:classpath:application-${spring.profiles.active}.yaml # 加载【本地】配置 + - optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置 + +server: + port: 48099 + +logging: + file: + name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径 + +# MyBatis Plus 的配置项 +mybatis-plus: + configuration: + map-underscore-to-camel-case: true # 虽然默认为 true ,但是还是显示去指定下。 + global-config: + db-config: + id-type: NONE # “智能”模式,基于 IdTypeEnvironmentPostProcessor + 数据源的类型,自动适配成 AUTO、INPUT 模式。 + # id-type: AUTO # 自增 ID,适合 MySQL 等直接自增的数据库 + # id-type: INPUT # 用户输入 ID,适合 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库 + # id-type: ASSIGN_ID # 分配 ID,默认使用雪花算法。注意,Oracle、PostgreSQL、Kingbase、DB2、H2 数据库时,需要去除实体类上的 @KeySequence 注解 + logic-delete-value: 1 # 逻辑已删除值(默认为 1) + logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) + banner: false # 关闭控制台的 Banner 打印 + type-aliases-package: ${yudao.info.base-package}.dal.dataobject + encryptor: + password: XDV71a+xqStEA3WH # 加解密的秘钥,可使用 https://www.imaegoo.com/2020/aes-key-generator/ 网站生成 + +mybatis-plus-join: + banner: false # 关闭控制台的 Banner 打印 + +yudao: + info: + version: 1.0.0 + base-package: cn.iocoder.yudao.module.base + web: + admin-ui: + url: http://dashboard.yudao.iocoder.cn # Admin 管理后台 UI 的地址 + xss: + enable: false + exclude-urls: # 如下 url,仅仅是为了演示,去掉配置也没关系 + - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求 + swagger: + title: 管理后台 + description: 提供管理员管理的所有功能 + version: ${yudao.info.version} + tenant: # 多租户相关配置项 + enable: true + ignore-urls: + +debug: true \ No newline at end of file diff --git a/yudao-module-base/yudao-module-base-biz/src/main/resources/logback-spring.xml b/yudao-module-base/yudao-module-base-biz/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..b1b9f3f --- /dev/null +++ b/yudao-module-base/yudao-module-base-biz/src/main/resources/logback-spring.xml @@ -0,0 +1,76 @@ + + + + + + + + + +       + + + ${PATTERN_DEFAULT} + + + + + + + + + + ${PATTERN_DEFAULT} + + + + ${LOG_FILE} + + + ${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz} + + ${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false} + + ${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB} + + ${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0} + + ${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30} + + + + + + 0 + + 256 + + + + + + + + ${PATTERN_DEFAULT} + + + + + + + + + + + + + + + + + + + + + +