之前接过一个私服。在网上找了半天也没找到合适的框架。要么版本低没人维护,要么组件高度依赖。于是自己新建了一个spingCloud框架,里面的所有组件都是可插拔的,集成了多个组件供你选择,你喜欢用哪个1.系统架构图2.快速入门1.本地启动nacos:http:///127.0。0.1:8848shstartup.sh-mstandalone2。在本地启动哨兵:http://127.0.0.1:9000nohupjava-Dauth.enabled=false-Dserver.port=9000-jarsentinel-dashboard-1.8.1.jar&3。本地启动zipkin:http://127.0.0.1:9411/nohupjava-jarzipkin-server-2.23.2-exec.jar&3.项目概况springboot+springcloud注册中心:nacosgateway:gatewayRPC:feign下面是一个可插拔函数组件熔断降级:sentinelfull链路跟踪:sleth+zipkin分布式事务:seata封装功能模块:全局异常处理,日志输出打印持久化,多数据源,认证授权模块,zk(分布式锁和订阅者模式)maven:实现多-environment打包并直接将镜像推送到docker私服。本项目集成了springcloud系统中的各个组件。和集成配置说明。同时将自己平时使用的功能包和工具包集成为模块。可以避免长时间不使用后忘记某些技术要点。另一方面,现在springbootspringcloud和springcloud-alibaba版本迭代速度越来越快。为了保证我们的打包和集成方式在新版本中仍然正常工作,我们需要使用该项目进行最新版本的适配实验。这样可以更快的将项目中的功能模块组装到项目中。4.项目预览5.新增业务工程模块说明由于springboot遵循约定大于配置的原则。所以本项目所有的包路径都在com.cloud.base下。如果新建的业务项目规定使用指定的基础包路径,则需要在启动类中添加包扫描注解,将com.cloud.base下的所有类添加到扫描范围中。@ComponentScan(basePackages="com.cloud.base")如果可以继续使用com.cloud.base,同意把启动类放在这个路径下。6.模块划分父项目:cloud-base-version依赖管理com.cloud||--common-常用工具包com.cloud.common||||--core-common通用包该包包含SpringMVC依赖,会与WebFlux服务冲突||||--core-exception自定义异常并请求统一返回类||--dependency-三方函数依赖集合未实现com.cloud.dependency||||--dependency-alibaba-cloud关于alibaba-cloud依赖收集||||--dependency-mybatis-tk关于ORMmybatis+tk.mybatis+pagehelper的依赖收集||||--dependency-mybatis-plus关于ORMmybatis+mybatis--plus+pagehelper的依赖收集||||--dependency-seata关于分布式事务seata的依赖收集||||--dependency-sentinel关于流控组件sentinel||||--dependency-sentinel-gateway关于网关集成流控组件sentinel的依赖集合(只有gateway网关使用该依赖)||||--dependency-sleuth-Zipkin对link的依赖集合跟踪侦探-zipkin||--模块-自定义自己实现的功能组件模块com.cloud.modules||||--modules-logger日志功能封装||||--modules-multi-datasource多数据功能封装||||--modules-lh-security分布式安全授权认证框架封装||||--modules-youji-task游记-分布式定时任务管理模块||||||下面是一个独立部署的应用下面的服务启动后和前端项目一起使用(cloud-base-angular-admin)||--cloud-gateway应用网关||--authorize-center集成了modules-lh-security的授权中心,提供统一授权认证||--code-generator代码生成工具||--user-center用户中心提供用户管理和权限管理的相关服务||--youji-manage-server集成了modules-youji-task的定时任务管理服务器七、版本说明2.4.22020.0.32021.1八、多环境打包说明在需要独立打包的模块资源中在application-dev.ymlapplication-test.ymlapplication-prod.yml目录下添加不同环境的配置文件修改application.ymlspring:profiles:active:@profileActive@在需要打包的模块下的pom文件中添加打包配置独立的里org.springframework.bootspring-boot-maven-plugin${springboot.version}<配置>truetrue重新打包org.apache.maven.pluginsmaven-resources-plugin<配置>@假src/main/resourcestruedevtruedevtesttestprodprodmvnpackagingcommand#打开开发环境mvncleanpackage-Pdev-Dmaven.test.skip=ture#放测试环境mvncleanpackage-Ptest-Dmaven.test.skip=ture#玩生产环境mvncleanpackage-Pprod-Dmaven.test.skip=ture九、构建Docker镜像集成dockerfile插件,可以直接将jar包构建成docker镜像推送到远程仓库增加插件依赖com.spotifydockerfile-maven-plugin1.4.10defaultpush49.232.166.94:8099/example/${project.artifactId}${profileActive}-${project.version}adminHarbor12345target/${project.build.finalName}.jar在与pom.xml同目录./target/${JAR_FILE}/opt/app.jarRUNchmod+x/opt/app.jarCMDjava-jar/opt/app.jar十、源码获取链接:https://pan.baidu.com/s/1mOOcIun7hrOsC_vp0w5aeA提取码:mel3