lamp-cloud 基于SpringCloud(Hoxton.SR10) + SpringBoot(2.3.9.RELEASE) 的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。

Overview

《灯灯》中后台快速开发平台

AUR GitHub stars star GitHub forks fork

lamp 项目名字由来

叙事版:

在一个夜黑风高的晚上,小孩吵着要出去玩,于是和程序员老婆一起带小孩出去放风,路上顺便讨论起项目要换个什么名字,在各自想出的名字都被对方一一否决后,大家陷入了沉思。 走着走着,在一盏路灯下,孩砸盯着路灯打破宁静,喊出:灯灯~ 我和媳妇愣了一下,然后对视着一起说:哈哈,这个名字好~

解释版:

灯灯: 是我小孩学说话时会说的第一个词,也是我在想了很多项目名后,小孩一语点破的一个名字,灯灯象征着光明,给困境的我们带来希望,给加班夜归的程序员们指引前方~

灯灯(简称灯, 英文名:lamp),他是一个项目的统称,包含以下几个子项目

lamp 项目组成

注意: 请先下载lamp-util 代码并编译(mvn install) 到本地仓库,然后在编译(mvn install)lamp-cloud或lamp-boot项目, 最后编译(mvn install)lamp-job项目!!!

工具集 (lamp-util 项目必备,其他2个可选)

项目 gitee github 备注
工具集 lamp-util lamp-util 业务无关的工具集,cloud 和 boot 项目都依赖它
代码生成器 lamp-generator lamp-generator 给开发人员使用
定时调度器 lamp-job lamp-job 尚未开发

后端 (下面2个项目功能一致,任选其一即可)

项目 gitee github 备注
微服务版(后端) lamp-cloud lamp-cloud SpringCloud 版
单体版(后端) lamp-boot lamp-boot SpringBoot 版(和 lamp-cloud 功能基本一致)

前端 (下面3个项目功能一致,任选其一即可)

项目 gitee github 备注 演示地址
中后台管理系统 lamp-web lamp-web (全部功能已完成)基于 vue-admin-element http://tangyh.top:10000
中后台管理系统 lamp-web-beautiful lamp-web-beautiful (正在开发...)基于 vue-admin-beautiful http://tangyh.top:180
中后台管理系统 (强烈推荐! 👏 👏 👏 ) lamp-web-beautiful lamp-web-beautiful (正在开发...)基于 vue-vben-admin (vue 3 + vite 2) http://tangyh.top:3100

lamp-cloud 简介

lamp-cloud的前身是zuihou-admin-cloud,从3.0.0版本开始,改名为lamp-cloud,它是lamp项目的其中一员。

lamp-cloud 基于SpringCloud(Hoxton.SR10) + SpringBoot(2.3.9.RELEASE) 的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。

核心技术采用Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking等主要框架和中间件。 希望能努力打造一套从 JavaWeb基础框架 - 分布式微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。

切记:使用本项目之前,先下载并编译 lamp-util

切记:使用本项目之前,先下载并编译 lamp-util

切记:使用本项目之前,先下载并编译 lamp-util

分支介绍

  1. master 分支为最新的稳定版本,每次提交都会升级一个版本号
  2. dev 分支为作者的开发分支,作者开发的最新功能会实时提交上来,喜欢尝鲜的可以切换为dev。 但可能有报错、漏提等,对项目不是很熟的朋友千万别尝试。
  3. tag 每个固定的版本都会打一个tag方便后续切换任意版本。

lamp 租户模式介绍

本项目真正实现了同一套代码(sql都不用改),只改一个配置类型,即轻松切换项目的 租户模式

租户模式 描述 优点 缺点
NONE(非租户模式) 没有租户 简单、适合独立系统 缺少租户系统的优点
COLUMN(字段模式) 租户共用一个数据库,在业务表中增加字段来区分 简单、不复杂、开发无感知 数据隔离性差、安全性差、数据备份和恢复困难、
SCHEMA(独立schema) 每个租户独立一个 数据库(schema),执行sql时,动态在表名前增加schema 简单、开发无感知、数据隔离性好 配置文件中必须配置数据库的root账号、不支持复杂sql和 sql嵌套自定义函数
DATASOURCE(独立数据源) 每个租户独立一个 数据库(数据源),执行代码时,动态切换数据源 可独立部署数据库,数据隔离性好、扩展性高、故障影响小 相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库

lamp 会员版项目演示地址

ps: 演示环境中内置租户没有写入权限,若要在演示环境测试增删改,请使用lamp_pt账号查询租户管理员账号后,登录新租户测试

lamp-cloud/lamp-boot + lamp-web 业务功能介绍:

  1. 租户管理:运营人员管理所有的租户创建
  2. 工作台:普通用户常用功能
  3. 组织管理:组织、岗位、用户数据维护、重置用户密码等
  4. 资源中心:消息、短信、附件管理
  5. 流程管理:流程部署、模型管理、流程示例
  6. 系统设置:菜单、资源配置、角色管理、给角色绑定用户、给角色授权菜单和资源、字典、地区、系统参数、操作日志、登录日志、应用管理等
  7. 网关设置:限流和阻止访问
  8. 开发者管理:定时任务、接口文档、注册&配置中心、服务监控、数据库监控、zipkin监控、SkyWalking监控

lamp-cloud 项目亮点功能介绍:

  1. 服务注册&发现与调用:

    基于Nacos来实现的服务注册与发现,使用使用Feign来实现服务互调, 可以做到使用HTTP请求远程调用时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。

  2. 负载均衡:

    将服务保留的rest进行代理和网关控制,除了平常经常使用的node.js、nginx外,Spring Cloud系列的zuul和ribbon,可以帮我们进行正常的网关管控和负载均衡。其中扩展和借鉴国外项目的扩展基于JWT的Zuul限流插件,方面进行限流。

  3. 服务鉴权:

    通过JWT的方式来加强服务之间调度的权限验证,保证内部服务的安全性。

  4. 熔断机制:

    因为采取了服务的分布,为了避免服务之间的调用“雪崩”,采用了Hystrix的作为熔断器,避免了服务之间的“雪崩”。

  5. 监控:

    利用Spring Boot Admin 来监控各个独立Service的运行状态;利用turbine来实时查看接口的运行状态和调用频率;通过Zipkin来查看各个服务之间的调用链等。

  6. 链路调用监控:

    同时实现了Zipkin和SkyWalking作为本项目的全链路性能监控, 从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,并且方便找到故障产生的源头,生产上可极大缩短故障排除时间。

  7. 数据权限

    利用基于Mybatis的DataScopeInnerInterceptor拦截器实现了数据权限功能

  8. SaaS(多租户)的无感解决方案

    本项目支持3种常见的租户解决方案和无租户方案,同一套代码,修改一个配置即可实现租户模式只有切换。

  9. 缓存抽象

    采用CacheOps操作缓存,内置2种实现:Caffeine、 Redis,可以让项目应急时在无Redis环境正常运行

  10. 优雅的Bean转换

    采用Dozer、BeanUtil等组件来对 DTO、DO、PO等对象的优化转换

  11. 前后端统一表单验证

    严谨的表单验证通常需要 前端+后端同时验证, 但传统的项目,均只能前后端各做一次检验, 后期规则变更,又得前后端同时修改。 故在hibernate-validator的基础上封装了lamp-validator-starter起步依赖,提供一个通用接口,可以获取需要校验表单的规则,然后前端使用后端返回的规则, 以后若规则改变,只需要后端修改即可。

  12. 防跨站脚本攻击(XSS)

    • 通过过滤器对所有请求中的 表单参数 进行过滤
    • 通过Json反序列化器实现对所有 application/json 类型的参数 进行过滤
  13. 当前登录用户信息注入器

    • 通过注解实现用户身份注入
  14. 在线API

    由于原生swagger-ui某些功能支持不够友好,故采用了国内开源的knife4j,并制作了stater,方便springboot用户使用。

  15. 代码生成器

    基于Mybatis-plus-generator自定义了一套代码生成器, 通过配置数据库字段的注释,自动生成枚举类、数据字典注解、SaveDTO、UpdateDTO、表单验证规则注解、Swagger注解等。

  16. 定时任务调度器

    基于xxl-job进行了功能增强。(如:指定时间发送任务、执行器和调度器合并项目、多数据源)

  17. 大文件/断点/分片续传

    前端采用webupload.js、后端采用NIO实现了大文件断点分片续传,启动Eureka、Zuul、File服务后,直接打开docs/chunkUploadDemo/demo.html即可进行测试。 经测试,本地限制堆栈最大内存128M启动File服务,5分钟内能成功上传4.6G+的大文件,正式服耗时则会受到用户带宽和服务器带宽的影响,时间比较长。

  18. 分布式事务

    集成了阿里的分布式事务中间件:seata,以 高效 并且对业务 0侵入 的方式,解决 微服务 场景下面临的分布式事务问题。

  19. 跨表、跨库、跨服务的关联数据自动注入器

    用于解决跨表、跨库、跨服务分页数据的属性或单个对象的属性 回显关联数据之痛, 支持对静态数据属性(数据字典)、动态主键数据进行自动注入。

  20. 灰度发布

    为了解决频繁的服务更新上线,版本回退,快速迭代,公司内部协同开发,本项目采用修改ribbon的负载均衡策略来实现来灰度发布。

lamp-cloud 技术栈/版本介绍:

  • 所涉及的相关的技术有:
    • JSON序列化:Jackson
    • 消息队列:RabbitMQ
    • 缓存:Redis
    • 数据库: MySQL 5.7.9 或者 MySQL 8.0.19
    • 定时器:采用xxl-job项目进行二次改造
    • 前端:vue + element-ui
    • 持久层框架: Mybatis-plus
    • 代码生成器:基于Mybatis-plus-generator自定义
    • API网关:Gateway/zuul
    • 服务注册&发现和配置中心: Nacos
    • 服务消费:OpenFeign
    • 负载均衡:Ribbon
    • 服务熔断:Hystrix
    • 项目构建:Maven
    • 分布式事务: seata
    • 分布式系统的流量防卫兵: Sentinel
    • 监控: spring-boot-admin
    • 链路调用跟踪: zipkin/SkyWalking
    • 文件服务器:FastDFS 5.0.5/阿里云OSS/本地存储/MinIO
    • Nginx
  • 部署方面:
    • 服务器:CentOS
    • Jenkins
    • Docker
    • Kubernetes

项目截图:

预览 预览
预览.png 预览.png
预览.png 预览.png
预览.png 预览.png
预览.png 预览.png
预览.png 预览.png
预览.png 预览.png
预览.png 预览.png

交流群,加群前请先给项目点个 "Star",谢谢! 😘

  • 63202894(主群 满员请加群2)
  • 1011148503(群2)

如果觉得本项目对您有任何一点帮助,请点右上角 "Star" 支持一下, 并向您的基友、同事们宣传一下吧,谢谢!

点我详细查看如何使用本项目的高级功能

ps: gitee捐献 或者 二维码打赏(本页最下方): 45元及以上 并 备注邮箱,可得离线开发文档一份 (支持后续更新) (该文档跟看云上的文档一致!)
    打赏或者捐献后直接加群:1039545140 并备注打赏时填写的邮箱,可以持续的获取最新的文档。 

发现bug请提交 issues

使用项目遇到问题请先查看历史 discussions ,未找到解决方案,在提交discussions(问题描述详细一些,报错截图大一些,复现步骤全一些)

会员版

本项目分为开源版和会员版,github和gitee上能搜索到的为开源版本,遵循Apache协议。 会员版源码在私有gitlab托管,购买后开通账号。

会员版和开源版区别请看:会员版

项目不错,支持一下吧

扫码支持.png

感谢 JetBrains 提供的免费开源 License:

JetBrains

友情链接 & 特别鸣谢

Comments
  • lamp-gateway-server模块启动报错

    lamp-gateway-server模块启动报错

    版本信息:

    JDK 版本(必填) : 1.8.x 源码版本(必填):3.0.2 MySQL(必填): 8.0.21 Nacos(必填):1.3.2

    问题描述:

    已使用maven helper工具查看依赖,没有spring-webmvc依赖,lamp-gateway-server.yml中配置了lamp.webmvc.enabled=false,如你所说在lamp-boot-util中GlobalMvcConfigurer实现了WebMvcConfigurer,但依赖lamp-boot-util已经排除了spring-webmvc依赖,还要怎么排除GlobalMvcConfigurer?报错中是LampRabbitMqConfiguration$RabbitMqConfiguration,这里面没有发现有关springmvc的东西?

    报错截图

    Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. [lamp-gateway-server:0000::] 2021-01-17 20:27:34.827:[ERROR] [12412] [] [main:24863] [org.springframework.boot.SpringApplication.reportFailure:837] Application run failed

    org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.tangyh.basic.mq.LampRabbitMqConfiguration$RabbitMqConfiguration]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/web/servlet/config/annotation/WebMvcConfigurer.class] cannot be opened because it does not exist at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:610) at org.springframework.context.annotation.ConfigurationClassParser.access$800(ConfigurationClassParser.java:111) at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.lambda$processGroupImports$1(ConfigurationClassParser.java:812) at java.util.ArrayList.forEach(ArrayList.java:1259) at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:809) at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:780) at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:193) at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:319) at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:236) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:280) at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:96) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:707) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533) at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:62) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405) at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) at com.tangyh.lamp.GatewayServerApplication.main(GatewayServerApplication.java:34) Caused by: java.io.FileNotFoundException: class path resource [org/springframework/web/servlet/config/annotation/WebMvcConfigurer.class] cannot be opened because it does not exist

    重现步骤

    1. nacos、redis、rabbitmq正常启动部署了,nacos中关于mysql、redis、rabbitmq的配置已经修改为和本地一致
    2. lamp-util 3.0.2正常install
    3. 启动lamp-gateway-server,报错!
    opened by flag-bug 8
  • org.apache.ibatis.binding.BindingException: Invalid bound Statement (not found): top.tangyh.lamp.tenant.mapper.InitDatabaseMapper.selectTenantCodeList

    org.apache.ibatis.binding.BindingException: Invalid bound Statement (not found): top.tangyh.lamp.tenant.mapper.InitDatabaseMapper.selectTenantCodeList

    版本信息:

    JDK 版本(必填) : JDK11 源码版本(必填):4.11.0 lamp-cloud-pro-datasource-column MySQL(必填): 8.0.29 Nacos(必填):2.0.2

    问题描述:

    想要简化工程目录,使得通过每个generator生成出来的微服务可被直接运行

    因此对于使用generator生成的微服务进行了一些改造,使其做到应该能正常跑起来。

    但目前改造完后将报错org.apache.ibatis.binding.BindingException: Invalid bound Statement (not found): top.tangyh.lamp.tenant.mapper.InitDatabaseMapper.selectTenantCodeList 推断是@MapperScan未扫到包,但该方法类路径确实是top.tangyh.lamp下的,应该会被扫到,因此有点不知道该如何处理

    经过测试发现,当工程项目将lamp-public引入后,服务可正常运行,但我想实现的是maven工程中也不同时引入lamp-public,只将lamp-public install至本地即可。

    我想要知道哪里的配置项需要修改以使整个服务可以使其在无需引入lamp-public的情况下使服务运行起来?

    报错截图

    下面两张为实际报错截图 initInfo2 initInfo1

    下面两张为配置截图,以表明该服务可正常被编译通过,nacos配置项正常 initInfo3 initInfo4

    下面一张截图为对比截图,与上面的区别是在maven工程中引入了lamp-public,可以正常运行 initSuccessInfo1

    重现步骤

    1.将lamp-util,lamp-cloud均install至本地maven仓库 2.使用generator生成一个新的服务lamp-testservice3,生成路径任意(不在原工程下,与原工程隔离,为一个完全独立的微服务) 3.将lamp-testservice3-server/pom.xml中的改为filters/config-${profile.active}.properties,并在该目录下增加一个文件夹filters,存放dev与prod两份properties文件,确保编译后的nacos配置文件正确 4.修改relativePath为不指定地址,从本地仓库拿lamp-dependencies-parent 5.运行lamp-testservices3,可见报错

    opened by pinkcao 7
  • 运行新建服务无法注入appendixController

    运行新建服务无法注入appendixController

    版本信息:

    JDK 版本(必填) : 11 源码版本(必填):4.11.0 lamp-cloud-pro-datasource-column MySQL(必填): 8.0.29 Nacos(必填):2.0.2

    问题描述:

    新建服务后运行服务,有bean注入失败

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'appendixController' defined in file [E:\Projects\BackEnd\lamp-cloud\lamp-public\lamp-file-sdk\target\classes\top\tangyh\lamp\file\controller\AppendixController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'baseAppendixServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'top.tangyh.lamp.file.mapper.AppendixMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
    

    报错截图

    bugInfo4

    重现步骤

    1.新建一个服务 2.将LogApi引入至WebConfiguration 3.配置nacos 4.运行服务

    支持一下

    如果该issue帮助了你, 麻烦给项目点个star, 并给当前issue回复一下 “👍” 或者 “已解决”.

    opened by pinkcao 7
  • Error running OauthServerApplication. Command line is too long.

    Error running OauthServerApplication. Command line is too long.

    版本信息:

    JDK 版本(必填) : 1.8.0 源码版本(必填):4.6.1 MySQL(必填): 5.7.9 Nacos(必填):2.1.0

    问题描述:

    编译运行OauthServerApplication出错

    报错截图

    image

    重现步骤

    1. 访问了什么接口?
    2. 传递什么参数?
    3. 后端控制台报了什么错?
    4. 前端控制台报了什么错?

    支持一下

    如果该issue帮助了你, 麻烦给项目点个star, 并给当前issue回复一下 “👍” 或者 “已解决”.

    opened by victoirechan 6
  • 部署lamp-web-pro出错,界面不出来

    部署lamp-web-pro出错,界面不出来

    版本信息:

    JDK 版本(必填) : 1.8.0 源码版本(必填):4.6.1 MySQL(必填): 5.7.9 Nacos(必填):2.1.0

    问题描述:

    部署lamp-web-pro出错,界面不出来,一直在转圈圈,按F12,出现提示: Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec.

    报错截图

    image

    重现步骤

    1. 访问了什么接口?
    2. 传递什么参数?
    3. 后端控制台报了什么错?
    4. 前端控制台报了什么错?

    支持一下

    如果该issue帮助了你, 麻烦给项目点个star, 并给当前issue回复一下 “👍” 或者 “已解决”.

    opened by victoirechan 5
  • 使用jenkins 从传输单个jar包过慢

    使用jenkins 从传输单个jar包过慢

    版本信息:

    JDK 版本(必填) : 1.8.0 源码版本(必填): MySQL(必填): 5.7.9 Nacos(必填): 203

    问题描述:

    SSH: Connecting from host [iZwz99xeomvq1omj9cu7tuZ] SSH: Connecting with configuration [120.78.11.123_dev] ... SSH: EXEC: completed after 201 ms SSH: Disconnecting configuration [120.78.11.123_dev] ... ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [2]]

    传输一个jar包140M传20分钟并报以上错误

    报错截图

    企业微信截图_16456015177176

    重现步骤

    1. 访问了什么接口?
    2. 传递什么参数?
    3. 后端控制台报了什么错?
    4. 前端控制台报了什么错?

    支持一下

    如果该issue帮助了你, 麻烦给项目点个star, 并给当前issue回复一下 “👍” 或者 “已解决”.

    opened by wuhao2721 5
  • 一点小建议

    一点小建议

    zuihou : 你好 从 去年开始一直关注您的项目, 从中学习到了很多, 非常感谢。查看源码的时候发现有几点我感觉不方便的地方:

    1. 验证权限的时候, 每验证一个权限都要通过api 查询另外一个服务,这样一来时间上估计会消耗比较多 2.兼容boot和cloud项目, 在injection 项目, 是否可以在实体类里把api 和 service 都配置上, 这样通过springutil.getBean("xxxserviceimpl")来获取 , 没有bean 再通过 springutil.getBean("xxxapi") 来获取, 这样能满足两个项目,而且还不需要配置. 在security 项目上也是如此, 把api 和 service 方式都配置上, 然后通过springutil的getbean 来判断, 这样可以兼容两种项目方式,而且也不需要用户来配置FEIGN/SERVICRE,保存日志也是如此兼容这两个项目, 最好的效果是一个项目, 有一个配置项上配置是boot还是cloud , boot的启动项目只是依赖其它所有的controller module
    2. 菜单 权限这两个表的数据都是一模一样的, 是否可以提到zuihou-defaults库里
    3. 通过feign 方式调用的 controller , 在controller 是否可以不检验权限。
    opened by zhonglh 5
  • 跨服务回显org时如果在redis中无相应key value将直接往redis插入key,null键值对,导致回显错误

    跨服务回显org时如果在redis中无相应key value将直接往redis插入key,null键值对,导致回显错误

    版本信息:

    JDK 版本(必填) : 11 源码版本(必填):lamp-cloud-pro-datasource-column 4.12.3 MySQL(必填): 8.0.11 Nacos(必填):2.0.2

    问题描述:

    跨服务回显org时如果在redis中无相应key value将直接往redis插入key,null键值对,导致回显错误

    报错截图

    图片

    重现步骤

    1.flush redis

    1. 将EchoController中的findOrgByIds修改为 图片

    3.在其他服务的resultVO实体中增加orgId的@Echo注解 图片

    4.前端登录

    5.前端直接进行pageQuery,跨服务回显(有echoService.action) 图片

    6.打印部分如报错截图部分,不知为何在map有相应值的情况下,却无法get到

    7.再次flush redis

    8.再次前端登录

    9.同服务间echo(查询用户) 图片

    可以从map中获取相应value

    请问是可能哪里出了问题

    opened by pinkcao 4
  • 后端启动的时候正常,前端刷新页面报系统繁忙,后台报Cause: java.sql.SQLSyntaxErrorException: Unknown column 'size' in 'field list'

    后端启动的时候正常,前端刷新页面报系统繁忙,后台报Cause: java.sql.SQLSyntaxErrorException: Unknown column 'size' in 'field list'

    版本信息:

    JDK 版本(必填) : 1.8.0 源码版本(必填):4.11.0 lamp-cloud-pro-datasource-column MySQL(必填): 5.7.9 Nacos(必填):2.0.3

    问题描述:

    后端启动的时候正常,前端刷新页面报系统繁忙,后台报Cause: java.sql.SQLSyntaxErrorException: Unknown column 'size' in 'field list'

    报错截图

    "C:\Program Files\Java\jdk1.8.0_231\bin\java.exe" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:64284,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:C:\Users\shawn\AppData\Local\JetBrains\IntelliJIdea2022.2\captureAgent\debugger-agent.jar=file:/C:/Users/shawn/AppData/Local/Temp/capture2.props -Dfile.encoding=UTF-8 -classpath C:\Users\shawn\AppData\Local\Temp\classpath1402798730.jar com.zak.freight.OauthServerApplication
    Connected to the target VM, address: '127.0.0.1:64284', transport: 'socket'
    [freight-oauth-server:0000::] 2022-09-28 13:17:48.827:[ INFO] [86316] [] [main:5508] [c.a.n.p.auth.spi.client.ClientAuthPluginManager.init:56] [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
    [freight-oauth-server:0000::] 2022-09-28 13:17:48.828:[ INFO] [86316] [] [main:5509] [c.a.n.p.auth.spi.client.ClientAuthPluginManager.init:56] [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
    
    当前服务: freight-oauth-server   激活环境: dev
    
    [freight-oauth-server:0000::] 2022-09-28 13:17:56.091:[ WARN] [86316] [] [main:12772] [c.a.cloud.nacos.client.NacosPropertySourceBuilder.loadNacosData:87] Ignore the empty nacos configuration and get it based on dataId[freight-oauth-server] & group[DEFAULT_GROUP]
    [freight-oauth-server:0000::] 2022-09-28 13:17:56.106:[ WARN] [86316] [] [main:12787] [c.a.cloud.nacos.client.NacosPropertySourceBuilder.loadNacosData:87] Ignore the empty nacos configuration and get it based on dataId[freight-oauth-server-dev.yml] & group[DEFAULT_GROUP]
    [freight-oauth-server:0000::] 2022-09-28 13:17:56.107:[ INFO] [86316] [] [main:12788] [o.s.c.b.c.PropertySourceBootstrapConfiguration.initialize:109] Located property source: [BootstrapPropertySource {name='bootstrapProperties-freight-oauth-server-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-freight-oauth-server.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-freight-oauth-server,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-rabbitmq.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-database.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-redis.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-common.yml,DEFAULT_GROUP'}]
    [freight-oauth-server:18773::] 2022-09-28 13:17:56.199:[ INFO] [86316] [] [main:12880] [com.zak.freight.OauthServerApplication.logStartupProfileInfo:651] The following 1 profile is active: "dev"
    [freight-oauth-server:18773::] 2022-09-28 13:18:00.790:[ INFO] [86316] [] [main:17471] [o.s.d.r.config.RepositoryConfigurationDelegate.multipleStoresDetected:262] Multiple Spring Data modules found, entering strict repository configuration mode!
    [freight-oauth-server:18773::] 2022-09-28 13:18:00.796:[ INFO] [86316] [] [main:17477] [o.s.d.r.config.RepositoryConfigurationDelegate.registerRepositoriesIn:132] Bootstrapping Spring Data Redis repositories in DEFAULT mode.
    [freight-oauth-server:18773::] 2022-09-28 13:18:01.009:[ INFO] [86316] [] [main:17690] [o.s.d.r.config.RepositoryConfigurationDelegate.registerRepositoriesIn:201] Finished Spring Data repository scanning in 178 ms. Found 0 Redis repository interfaces.
    [freight-oauth-server:18773::] 2022-09-28 13:18:01.861:[ INFO] [86316] [] [main:18542] [o.springframework.cloud.context.scope.GenericScope.setSerializationId:283] BeanFactory id=779a3730-54bb-3e72-a89d-409c51d5c99a
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.007:[ INFO] [86316] [] [main:18688] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'com.zak.basic.validator.config.ValidatorConfiguration' of type [com.zak.basic.validator.config.ValidatorConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.076:[ INFO] [86316] [] [main:18757] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'validator' of type [org.hibernate.validator.internal.engine.ValidatorImpl] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.623:[ INFO] [86316] [] [main:19304] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.628:[ INFO] [86316] [] [main:19309] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.631:[ INFO] [86316] [] [main:19312] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$527/2121682524] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.648:[ INFO] [86316] [] [main:19329] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.678:[ INFO] [86316] [] [main:19359] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'spring.datasource.dynamic-com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.692:[ INFO] [86316] [] [main:19373] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration' of type [com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$aebdb2f7] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.725:[ INFO] [86316] [] [main:19406] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'datasourceColumnAutoConfiguration' of type [com.zak.freight.config.datasource.DatasourceColumnAutoConfiguration$$EnhancerBySpringCGLIB$$f472638] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.737:[ INFO] [86316] [] [main:19418] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'dsProcessor' of type [com.zak.freight.tenant.dynamic.processor.DsThreadProcessor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:02.905:[ INFO] [86316] [] [main:19586] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'spring.cloud.sentinel-com.alibaba.cloud.sentinel.SentinelProperties' of type [com.alibaba.cloud.sentinel.SentinelProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    INFO: Sentinel log output type is: file
    INFO: Sentinel log charset is: utf-8
    INFO: Sentinel log base directory is: C:\Users\shawn\logs\csp\
    INFO: Sentinel log name use pid is: false
    [freight-oauth-server:18773::] 2022-09-28 13:18:03.166:[ INFO] [86316] [] [main:19847] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'com.alibaba.cloud.sentinel.custom.SentinelAutoConfiguration' of type [com.alibaba.cloud.sentinel.custom.SentinelAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:03.176:[ INFO] [86316] [] [main:19857] [o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker.postProcessAfterInitialization:376] Bean 'com.zak.basic.swagger2.Swagger2Configuration' of type [com.zak.basic.swagger2.Swagger2Configuration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    [freight-oauth-server:18773::] 2022-09-28 13:18:03.655:[ INFO] [86316] [] [main:20336] [org.xnio.<clinit>:95] XNIO version 3.8.6.Final
    [freight-oauth-server:18773::] 2022-09-28 13:18:03.676:[ INFO] [86316] [] [main:20357] [org.xnio.nio.<clinit>:58] XNIO NIO Implementation Version 3.8.6.Final
    [freight-oauth-server:18773::] 2022-09-28 13:18:03.746:[ INFO] [86316] [] [main:20427] [org.jboss.threads.<clinit>:52] JBoss Threads version 3.1.0.Final
    [freight-oauth-server:18773::] 2022-09-28 13:18:03.881:[ INFO] [86316] [] [main:20562] [io.undertow.servlet.log:382] Initializing Spring embedded WebApplicationContext
    [freight-oauth-server:18773::] 2022-09-28 13:18:03.881:[ INFO] [86316] [] [main:20562] [o.s.b.w.s.c.ServletWebServerApplicationContext.prepareWebApplicationContext:290] Root WebApplicationContext: initialization completed in 7639 ms
    [freight-oauth-server:18773::] 2022-09-28 13:18:05.019:[ INFO] [86316] [] [main:21700] [c.alibaba.cloud.sentinel.SentinelWebMvcConfigurer.addInterceptors:52] [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/**].
    [freight-oauth-server:18773::] 2022-09-28 13:18:05.160:[ WARN] [86316] [] [main:21841] [c.z.b.m.LampRabbitMqConfiguration$RabbitMqConfiguration.<init>:34] 检测到freight.rabbitmq.enabled=false,排除了 RabbitMQ
    [freight-oauth-server:18773::] 2022-09-28 13:18:08.111:[ INFO] [86316] [] [main:24792] [com.zak.basic.log.util.AddressUtil.<clinit>:48] bean [org.lionsoul.ip2region.DbConfig@4af5c14c]
    [freight-oauth-server:18773::] 2022-09-28 13:18:08.112:[ INFO] [86316] [] [main:24793] [com.zak.basic.log.util.AddressUtil.<clinit>:49] bean [org.lionsoul.ip2region.DbSearcher@74d4f542]
    [freight-oauth-server:18773::] 2022-09-28 13:18:08.165:[ INFO] [86316] [] [main:24846] [org.owasp.validator.html.Policy.getInstance:294] Attempting to load AntiSamy policy from an input stream.
    [freight-oauth-server:18773::] 2022-09-28 13:18:08.562:[ WARN] [86316] [] [main:25243] [org.owasp.validator.html.Policy.<init>:56] The directive "noopenerAndNoreferrerAnchors" is not enabled by default. It is recommended to enable it to prevent reverse tabnabbing attacks.
    [freight-oauth-server:18773::] 2022-09-28 13:18:08.589:[ INFO] [86316] [] [main:25270] [c.z.f.oauth.controller.OauthGeneralController.<clinit>:67] 扫描: com.zak ,共加载了40个枚举类, 分别为: DictClassifyEnum,LoginStatusEnum,TplEnum,TemplateEnum,ResourceOpenWithEnum,SourceType,TaskStatus,FileType,ProductType,OrgTypeEnum,MsgTemplateTypeEnum,DateType,LogType,ComponentEnum,ResourceTypeEnum,MsgTemplateCodeEnum,ActiveStatusEnum,DataTypeEnum,PopupTypeEnum,VxeComponentEnum,ProjectTypeEnum,FileStorageType,HttpMethod,GenTypeEnum,EntitySuperClassEnum,TenantConnectTypeEnum,UserStatusEnum,DefTenantRegisterTypeEnum,DefGenTestTreeType2Enum,DefGenTestSimpleType2Enum,Sex,NoticeRemindModeEnum,DefTenantStatusEnum,MsgInterfaceLoggingStatusEnum,FileOverrideStrategyEnum,SqlConditionEnum,GrantType,InterfaceExecModeEnum,RoleCategoryEnum,SuperClassEnum
    [freight-oauth-server:18773::] 2022-09-28 13:18:10.908:[ INFO] [86316] [] [main:27589] [c.z.f.config.datasource.MybatisAutoConfiguration.getPaginationBeforeInnerInterceptor:44] 检查到配置了:DATASOURCE_COLUMN模式,已加载 column 部分插件
    [freight-oauth-server:18773::] 2022-09-28 13:18:11.009:[ INFO] [86316] [] [main:27690] [c.b.dynamic.datasource.DynamicRoutingDataSource.checkEnv:238] dynamic-datasource detect P6SPY plugin and enabled it
    [freight-oauth-server:18773::] 2022-09-28 13:18:11.149:[ WARN] [86316] [] [main:27830] [c.b.d.d.s.b.a.druid.DruidWallConfigUtil.toWallConfig:60] druid wall does not have param enabled
    [freight-oauth-server:18773::] 2022-09-28 13:18:11.745:[ INFO] [86316] [] [main:28426] [com.alibaba.druid.pool.DruidDataSource.init:998] {dataSource-1,0} inited
    [freight-oauth-server:18773::] 2022-09-28 13:18:11.750:[ INFO] [86316] [] [main:28431] [c.b.dynamic.datasource.DynamicRoutingDataSource.addDataSource:148] dynamic-datasource - add a datasource named [0] success
    [freight-oauth-server:18773::] 2022-09-28 13:18:11.751:[ INFO] [86316] [] [main:28432] [c.b.dynamic.datasource.DynamicRoutingDataSource.afterPropertiesSet:228] dynamic-datasource initial loaded [1] datasource,primary datasource named [0]
     _ _   |_  _ _|_. ___ _ |    _ 
    | | |\/|_)(_| | |_\  |_)||_|_\ 
         /               |         
                            3.5.2 
    [freight-oauth-server:18773::] 2022-09-28 13:18:17.361:[ INFO] [86316] [] [main:34042] [o.s.cloud.openfeign.FeignClientFactoryBean.getTarget:418] For 'freight-base-server' URL not provided. Will try picking an instance via load-balancing.
    [freight-oauth-server:18773::] 2022-09-28 13:18:17.529:[ WARN] [86316] [] [main:34210] [com.zak.basic.cache.RedisAutoConfigure.cacheOps:118] 检查到缓存采用了 Redis模式
    [freight-oauth-server:18773::] 2022-09-28 13:18:17.538:[ INFO] [86316] [] [main:34219] [o.s.cloud.openfeign.FeignClientFactoryBean.getTarget:418] For 'freight-base-server' URL not provided. Will try picking an instance via load-balancing.
    [freight-oauth-server:18773::] 2022-09-28 13:18:18.469:[ INFO] [86316] [] [main:35150] [o.s.cloud.openfeign.FeignClientFactoryBean.getTarget:418] For 'freight-oauth-server' URL not provided. Will try picking an instance via load-balancing.
    [freight-oauth-server:18773::] 2022-09-28 13:18:21.191:[ INFO] [86316] [] [main:37872] [o.s.cloud.openfeign.FeignClientFactoryBean.getTarget:418] For 'freight-oauth-server' URL not provided. Will try picking an instance via load-balancing.
    [freight-oauth-server:18773::] 2022-09-28 13:18:21.203:[ INFO] [86316] [] [main:37884] [o.s.cloud.openfeign.FeignClientFactoryBean.getTarget:418] For 'freight-oauth-server' URL not provided. Will try picking an instance via load-balancing.
    [freight-oauth-server:18773::] 2022-09-28 13:18:21.214:[ INFO] [86316] [] [main:37895] [o.s.cloud.openfeign.FeignClientFactoryBean.getTarget:418] For 'freight-oauth-server' URL not provided. Will try picking an instance via load-balancing.
    freight_base: null TenantId: null UserId: null 
     Consume Time:401 ms 2022-09-28 13:18:27 
     url: jdbc:mysql://192.168.153.122:3306/freight_ds_c_defaults?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true 
     Execute SQL:INSERT INTO worker_node( host_name,port, type, launch_date,modified,created) VALUES ('192.168.153.108','1664342307059-58466',2,'2022-09-28T13:18:26.598+0800','2022-09-28T13:18:27.061+0800', '2022-09-28T13:18:27.061+0800') 
    
    [freight-oauth-server:18773::] 2022-09-28 13:18:27.782:[ INFO] [86316] [] [main:44463] [c.baidu.fsg.uid.worker.DisposableWorkerIdAssigner.assignWorkerId:64] Add worker node:WorkerNodeEntity[created=Wed Sep 28 13:18:27 CST 2022,hostName=192.168.153.108,id=0,launchDate=Wed Sep 28 13:18:26 CST 2022,modified=Wed Sep 28 13:18:27 CST 2022,port=1664342307059-58466,type=2]
    [freight-oauth-server:18773::] 2022-09-28 13:18:27.789:[ INFO] [86316] [] [main:44470] [com.baidu.fsg.uid.impl.DefaultUidGenerator.afterPropertiesSet:103] Initialized bits(1, 31, 22, 10) for workerID:0
    [freight-oauth-server:18773::] 2022-09-28 13:18:27.793:[ INFO] [86316] [] [main:44474] [com.baidu.fsg.uid.impl.CachedUidGenerator.initRingBuffer:122] Initialized ring buffer size:8192, paddingFactor:50
    [freight-oauth-server:18773::] 2022-09-28 13:18:27.796:[ INFO] [86316] [] [main:44477] [com.baidu.fsg.uid.impl.CachedUidGenerator.initRingBuffer:131] Initialized BufferPaddingExecutor. Using schdule:true, interval:300
    [freight-oauth-server:18773::] 2022-09-28 13:18:27.797:[ INFO] [86316] [] [main:44478] [com.baidu.fsg.uid.buffer.RingBuffer.paddingBuffer:158] Ready to padding buffer lastSecond:1664342307. RingBuffer [bufferSize=8192, tail=-1, cursor=-1, paddingThreshold=4096]
    [freight-oauth-server:18773::] 2022-09-28 13:18:27.804:[ WARN] [86316] [] [main:44485] [com.baidu.fsg.uid.buffer.RingBuffer.discardPutBuffer:208] Rejected putting buffer for uid:275922082213134336. RingBuffer [bufferSize=8192, tail=8191, cursor=-1, paddingThreshold=4096]
    [freight-oauth-server:18773::] 2022-09-28 13:18:27.804:[ INFO] [86316] [] [main:44485] [com.baidu.fsg.uid.buffer.RingBuffer.paddingBuffer:180] End to padding buffer lastSecond:1664342316. RingBuffer [bufferSize=8192, tail=8191, cursor=-1, paddingThreshold=4096]
    [freight-oauth-server:18773::] 2022-09-28 13:18:27.806:[ INFO] [86316] [] [main:44487] [com.baidu.fsg.uid.impl.CachedUidGenerator.afterPropertiesSet:77] Initialized RingBuffer successfully.
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.165:[ INFO] [86316] [] [main:45846] [c.a.n.p.auth.spi.client.ClientAuthPluginManager.init:56] [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.impl.NacosClientAuthServiceImpl success.
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.166:[ INFO] [86316] [] [main:45847] [c.a.n.p.auth.spi.client.ClientAuthPluginManager.init:56] [ClientAuthPluginManager] Load ClientAuthService com.alibaba.nacos.client.auth.ram.RamClientAuthServiceImpl success.
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.365:[ INFO] [86316] [] [main:46046] [com.alibaba.nacos.common.remote.client.lambda$createClient$0:95] [RpcClientFactory] create a new rpc client of 2104c960-4e9d-4c69-9e8c-ec7952ad2928
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.367:[ INFO] [86316] [] [main:46048] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] RpcClient init label, labels = {module=naming, source=sdk}
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.374:[ INFO] [86316] [] [main:46055] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] RpcClient init, ServerListFactory = com.alibaba.nacos.client.naming.core.ServerListManager
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.375:[ INFO] [86316] [] [main:46056] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] Registry connection listener to current client:com.alibaba.nacos.client.naming.remote.gprc.redo.NamingGrpcRedoService
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.377:[ INFO] [86316] [] [main:46058] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] Register server push request handler:com.alibaba.nacos.client.naming.remote.gprc.NamingPushRequestHandler
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.379:[ INFO] [86316] [] [main:46060] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] Try to connect to server on start up, server: {serverIp = '192.168.153.122', server main port = 8848}
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.507:[ INFO] [86316] [] [main:46188] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] Success to connect to server [192.168.153.122:8848] on start up, connectionId = 1664342309455_192.168.153.108_64329
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.508:[ INFO] [86316] [] [com.alibaba.nacos.client.remote.worker:46189] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] Notify connected event to listeners.
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.508:[ INFO] [86316] [] [main:46189] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$ConnectResetRequestHandler
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.512:[ INFO] [86316] [] [main:46193] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] Register server push request handler:com.alibaba.nacos.common.remote.client.RpcClient$$Lambda$374/1629173206
    [freight-oauth-server:18773::] 2022-09-28 13:18:29.876:[ INFO] [86316] [] [main:46557] [o.s.b.actuate.endpoint.web.EndpointLinksResolver.<init>:58] Exposing 20 endpoint(s) beneath base path '/actuator'
    [freight-oauth-server:18773::] 2022-09-28 13:18:30.797:[ INFO] [86316] [] [main:47478] [s.d.s.w.WebMvcPropertySourcedRequestMappingHandlerMapping.initHandlerMethods:69] Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2ControllerWebMvc#getDocumentation(String, HttpServletRequest)]
    [freight-oauth-server:18773::] 2022-09-28 13:18:31.559:[ WARN] [86316] [] [main:48240] [o.s.b.a.freemarker.FreeMarkerAutoConfiguration.checkTemplateLocationExists:65] Cannot find template location(s): [classpath:/templates/] (please add some templates, check your FreeMarker configuration, or set spring.freemarker.checkTemplateLocation=false)
    [freight-oauth-server:18773::] 2022-09-28 13:18:33.041:[ INFO] [86316] [] [main:49722] [io.undertow.start:120] starting server: Undertow - 2.2.17.Final
    [freight-oauth-server:18773::] 2022-09-28 13:18:33.166:[ INFO] [86316] [] [main:49847] [o.s.boot.web.embedded.undertow.UndertowWebServer.start:119] Undertow started on port(s) 18773 (http)
    [freight-oauth-server:18773::] 2022-09-28 13:18:33.188:[ INFO] [86316] [] [main:49869] [c.a.cloud.nacos.registry.NacosServiceRegistry.register:75] nacos registry, DEFAULT_GROUP freight-oauth-server 192.168.153.108:18773 register finished
    [freight-oauth-server:18773::] 2022-09-28 13:18:33.644:[ INFO] [86316] [] [nacos-grpc-client-executor-192.168.153.122-5:50325] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] Receive server push request, request = NotifySubscriberRequest, requestId = 1825
    [freight-oauth-server:18773::] 2022-09-28 13:18:33.653:[ INFO] [86316] [] [nacos-grpc-client-executor-192.168.153.122-5:50334] [com.alibaba.nacos.common.remote.client.printIfInfoEnabled:60] [2104c960-4e9d-4c69-9e8c-ec7952ad2928] Ack server push request, request = NotifySubscriberRequest, requestId = 1825
    [freight-oauth-server:18773::] 2022-09-28 13:18:34.563:[ INFO] [86316] [] [main:51244] [s.d.s.web.plugins.DocumentationPluginsBootstrapper.start:93] Documentation plugins bootstrapped
    [freight-oauth-server:18773::] 2022-09-28 13:18:34.574:[ INFO] [86316] [] [main:51255] [s.d.s.web.plugins.DocumentationPluginsBootstrapper.bootstrapDocumentationPlugins:79] Found 1 custom documentation plugin(s)
    [freight-oauth-server:18773::] 2022-09-28 13:18:34.687:[ INFO] [86316] [] [main:51368] [s.d.spring.web.scanners.ApiListingReferenceScanner.scan:44] Scanning for api listing references
    [freight-oauth-server:18773::] 2022-09-28 13:18:35.219:[ INFO] [86316] [] [main:51900] [s.d.s.w.r.operation.CachingOperationNameGenerator.startingWith:41] Generating unique operation named: registerUsingPOST_1
    [freight-oauth-server:18773::] 2022-09-28 13:18:35.406:[ INFO] [86316] [] [main:52087] [s.d.s.w.r.operation.CachingOperationNameGenerator.startingWith:41] Generating unique operation named: checkUsingGET_1
    [freight-oauth-server:18773::] 2022-09-28 13:18:35.666:[ INFO] [86316] [] [main:52347] [s.d.s.w.r.operation.CachingOperationNameGenerator.startingWith:41] Generating unique operation named: loginUsingPOST_1
    [freight-oauth-server:18773::] 2022-09-28 13:18:35.751:[ INFO] [86316] [] [main:52432] [com.zak.freight.OauthServerApplication.logStarted:61] Started OauthServerApplication in 51.768 seconds (JVM running for 55.03)
    freight_base: null TenantId: null UserId: null 
     Consume Time:36 ms 2022-09-28 13:18:36 
     url: jdbc:mysql://192.168.153.122:3306/freight_ds_c_defaults?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true 
     Execute SQL:SELECT id FROM def_tenant where status in ( '05' , '15' ) and connect_type = 'SYSTEM' 
    
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.212:[ WARN] [86316] [] [main:52893] [c.b.d.d.s.b.a.druid.DruidWallConfigUtil.toWallConfig:60] druid wall does not have param enabled
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.410:[ INFO] [86316] [] [main:53091] [com.alibaba.druid.pool.DruidDataSource.init:998] {dataSource-2,freight_base_1} inited
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.412:[ INFO] [86316] [] [main:53093] [c.b.dynamic.datasource.DynamicRoutingDataSource.addDataSource:148] dynamic-datasource - add a datasource named [freight_base_1] success
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.414:[ WARN] [86316] [] [main:53095] [c.b.d.d.s.b.a.druid.DruidWallConfigUtil.toWallConfig:60] druid wall does not have param enabled
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.593:[ INFO] [86316] [] [main:53274] [com.alibaba.druid.pool.DruidDataSource.init:998] {dataSource-3,freight_base_2} inited
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.594:[ INFO] [86316] [] [main:53275] [c.b.dynamic.datasource.DynamicRoutingDataSource.addDataSource:148] dynamic-datasource - add a datasource named [freight_base_2] success
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.595:[ WARN] [86316] [] [main:53276] [c.b.d.d.s.b.a.druid.DruidWallConfigUtil.toWallConfig:60] druid wall does not have param enabled
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.770:[ INFO] [86316] [] [main:53451] [com.alibaba.druid.pool.DruidDataSource.init:998] {dataSource-4,freight_base_270678644404256924} inited
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.770:[ INFO] [86316] [] [main:53451] [c.b.dynamic.datasource.DynamicRoutingDataSource.addDataSource:148] dynamic-datasource - add a datasource named [freight_base_270678644404256924] success
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.772:[ WARN] [86316] [] [main:53453] [c.b.d.d.s.b.a.druid.DruidWallConfigUtil.toWallConfig:60] druid wall does not have param enabled
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.946:[ INFO] [86316] [] [main:53627] [com.alibaba.druid.pool.DruidDataSource.init:998] {dataSource-5,freight_base_270678644404257001} inited
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.946:[ INFO] [86316] [] [main:53627] [c.b.dynamic.datasource.DynamicRoutingDataSource.addDataSource:148] dynamic-datasource - add a datasource named [freight_base_270678644404257001] success
    [freight-oauth-server:18773::] 2022-09-28 13:18:36.948:[ WARN] [86316] [] [main:53629] [c.b.d.d.s.b.a.druid.DruidWallConfigUtil.toWallConfig:60] druid wall does not have param enabled
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.128:[ INFO] [86316] [] [main:53809] [com.alibaba.druid.pool.DruidDataSource.init:998] {dataSource-6,freight_base_270678644404257078} inited
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.129:[ INFO] [86316] [] [main:53810] [c.b.dynamic.datasource.DynamicRoutingDataSource.addDataSource:148] dynamic-datasource - add a datasource named [freight_base_270678644404257078] success
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.130:[ WARN] [86316] [] [main:53811] [c.b.d.d.s.b.a.druid.DruidWallConfigUtil.toWallConfig:60] druid wall does not have param enabled
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.310:[ INFO] [86316] [] [main:53991] [com.alibaba.druid.pool.DruidDataSource.init:998] {dataSource-7,freight_base_270678644404257155} inited
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.310:[ INFO] [86316] [] [main:53991] [c.b.dynamic.datasource.DynamicRoutingDataSource.addDataSource:148] dynamic-datasource - add a datasource named [freight_base_270678644404257155] success
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.312:[ WARN] [86316] [] [main:53993] [c.b.d.d.s.b.a.druid.DruidWallConfigUtil.toWallConfig:60] druid wall does not have param enabled
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.492:[ INFO] [86316] [] [main:54173] [com.alibaba.druid.pool.DruidDataSource.init:998] {dataSource-8,freight_base_272933966091124736} inited
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.492:[ INFO] [86316] [] [main:54173] [c.b.dynamic.datasource.DynamicRoutingDataSource.addDataSource:148] dynamic-datasource - add a datasource named [freight_base_272933966091124736] success
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.493:[ WARN] [86316] [] [main:54174] [c.b.d.d.s.b.a.druid.DruidWallConfigUtil.toWallConfig:60] druid wall does not have param enabled
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.666:[ INFO] [86316] [] [main:54347] [com.alibaba.druid.pool.DruidDataSource.init:998] {dataSource-9,freight_base_272933966091124813} inited
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.666:[ INFO] [86316] [] [main:54347] [c.b.dynamic.datasource.DynamicRoutingDataSource.addDataSource:148] dynamic-datasource - add a datasource named [freight_base_272933966091124813] success
    freight_base: null TenantId: null UserId: null 
     Consume Time:2 ms 2022-09-28 13:18:37 
     url: jdbc:mysql://192.168.153.122:3306/freight_ds_c_defaults?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true 
     Execute SQL:SELECT dc.id, dc.created_time, dc.created_by, dc.updated_time, dc.updated_by, dc.name, dc.username, dc.password, dc.url, dc.driver_class_name driverClassName, t.id as tenantId, tdc.db_prefix as dbPrefix from def_datasource_config dc INNER JOIN def_tenant_ds_c_rel tdc on dc.id = tdc.datasource_config_id INNER JOIN def_tenant t on t.id = tdc.tenant_id where t.status in ( '05' , '15' ) and t.connect_type = 'CUSTOM' 
    
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.703:[ INFO] [86316] [] [main:54384] [c.a.cloud.nacos.refresh.NacosContextRefresher.registerNacosListenersForApplications:105] listening config: dataId=freight-oauth-server.yml, group=DEFAULT_GROUP
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.704:[ INFO] [86316] [] [main:54385] [c.a.cloud.nacos.refresh.NacosContextRefresher.registerNacosListenersForApplications:105] listening config: dataId=freight-oauth-server-dev.yml, group=DEFAULT_GROUP
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.706:[ INFO] [86316] [] [main:54387] [c.a.cloud.nacos.refresh.NacosContextRefresher.registerNacosListenersForApplications:105] listening config: dataId=common.yml, group=DEFAULT_GROUP
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.708:[ INFO] [86316] [] [main:54389] [c.a.cloud.nacos.refresh.NacosContextRefresher.registerNacosListenersForApplications:105] listening config: dataId=database.yml, group=DEFAULT_GROUP
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.709:[ INFO] [86316] [] [main:54390] [c.a.cloud.nacos.refresh.NacosContextRefresher.registerNacosListenersForApplications:105] listening config: dataId=freight-oauth-server, group=DEFAULT_GROUP
    [freight-oauth-server:18773::] 2022-09-28 13:18:37.712:[ INFO] [86316] [] [main:54393] [com.zak.freight.OauthServerApplication.main:34] 
    ----------------------------------------------------------
    	应用 'freight-oauth-server' 运行成功! 访问连接:
    	Swagger文档: 		http://192.168.153.108:18773/doc.html
    	数据库监控: 		http://127.0.0.1:18773/druid
    ----------------------------------------------------------
    [freight-oauth-server:18773::] 2022-09-28 13:18:38.766:[ INFO] [86316] [] [RMI TCP Connection(5)-192.168.153.108:55447] [io.undertow.servlet.log:382] Initializing Spring DispatcherServlet 'dispatcherServlet'
    [freight-oauth-server:18773::] 2022-09-28 13:18:38.767:[ INFO] [86316] [] [RMI TCP Connection(5)-192.168.153.108:55448] [org.springframework.web.servlet.DispatcherServlet.initServletBean:525] Initializing Servlet 'dispatcherServlet'
    [freight-oauth-server:18773::] 2022-09-28 13:18:38.773:[ INFO] [86316] [] [RMI TCP Connection(5)-192.168.153.108:55454] [org.springframework.web.servlet.DispatcherServlet.initServletBean:547] Completed initialization in 6 ms
    [freight-oauth-server:18773::] 2022-09-28 13:23:27.818:[ INFO] [86316] [] [RingBuffer-Padding-Schedule-1:344499] [com.baidu.fsg.uid.buffer.RingBuffer.paddingBuffer:158] Ready to padding buffer lastSecond:1664342316. RingBuffer [bufferSize=8192, tail=8191, cursor=-1, paddingThreshold=4096]
    [freight-oauth-server:18773::] 2022-09-28 13:23:27.819:[ WARN] [86316] [] [RingBuffer-Padding-Schedule-1:344500] [com.baidu.fsg.uid.buffer.RingBuffer.discardPutBuffer:208] Rejected putting buffer for uid:275922086508101632. RingBuffer [bufferSize=8192, tail=8191, cursor=-1, paddingThreshold=4096]
    [freight-oauth-server:18773::] 2022-09-28 13:23:27.819:[ INFO] [86316] [] [RingBuffer-Padding-Schedule-1:344500] [com.baidu.fsg.uid.buffer.RingBuffer.paddingBuffer:180] End to padding buffer lastSecond:1664342317. RingBuffer [bufferSize=8192, tail=8191, cursor=-1, paddingThreshold=4096]
    [freight-oauth-server:18773::] 2022-09-28 13:24:28.109:[ WARN] [86316] [c1c1cbd607f6440ebbbd5007ccddf5da] [XNIO-2 task-1:404790] [com.alibaba.druid.pool.DruidAbstractDataSource.testConnectionInternal:1494] discard long time none received connection. , jdbcUrl : jdbc:mysql://192.168.153.122:3306/freight_ds_c_defaults?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true, version : 1.2.8, lastPacketReceivedIdleMillis : 350382
    [freight-oauth-server:18773::] 2022-09-28 13:24:28.113:[ WARN] [86316] [c1c1cbd607f6440ebbbd5007ccddf5da] [XNIO-2 task-1:404794] [com.alibaba.druid.pool.DruidAbstractDataSource.testConnectionInternal:1494] discard long time none received connection. , jdbcUrl : jdbc:mysql://192.168.153.122:3306/freight_ds_c_defaults?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true, version : 1.2.8, lastPacketReceivedIdleMillis : 376556
    freight_base: null TenantId: null UserId: 1452186486253289472 
     Consume Time:4 ms 2022-09-28 13:24:28 
     url: jdbc:mysql://192.168.153.122:3306/freight_ds_c_defaults?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true 
     Execute SQL:SELECT id,username,nick_name,email,mobile,id_card,wx_open_id,dd_open_id,readonly,sex,nation,education,state,work_describe,password_error_last_time,password_error_num,password_expire_time,password,salt,last_login_time,updated_time,updated_by,created_time,created_by FROM def_user WHERE id=1452186486253289472  
    
    freight_base: null TenantId: null UserId: 1452186486253289472 
     Consume Time:46 ms 2022-09-28 13:24:28 
     url: jdbc:mysql://192.168.153.122:3306/freight_ds_c_defaults?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useUnicode=true&useSSL=false&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true 
     Execute SQL:SELECT id,biz_id,biz_type,file_type,bucket,path,original_file_name,content_type,size,updated_time,updated_by,created_time,created_by FROM com_appendix WHERE (biz_id = 1452186486253289472 AND biz_type = 'DEF__USER__AVATAR') 
    
    
    [freight-oauth-server:18773::] 2022-09-28 13:24:28.584:[ WARN] [86316] [c1c1cbd607f6440ebbbd5007ccddf5da] [XNIO-2 task-1:405265] [c.z.b.boot.handler.AbstractGlobalExceptionHandler.otherExceptionHandler:231] Exception:
    
    org.springframework.jdbc.BadSqlGrammarException: 
    ### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column 'size' in 'field list'
    ### The error may exist in com/zak/freight/file/mapper/AppendixMapper.java (best guess)
    ### The error may involve defaultParameterMap
    ### The error occurred while setting parameters
    ### SQL: SELECT  id,biz_id,biz_type,file_type,bucket,path,original_file_name,content_type,size,updated_time,updated_by,created_time,created_by  FROM com_appendix     WHERE (biz_id = ? AND biz_type = ?)
    ### Cause: java.sql.SQLSyntaxErrorException: Unknown column 'size' in 'field list'
    ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column 'size' in 'field list'
    	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)
    	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)
    	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)
    	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
    	at com.sun.proxy.$Proxy178.selectList(Unknown Source)
    	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:224)
    	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:166)
    	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:77)
    	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
    	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
    	at com.sun.proxy.$Proxy195.selectList(Unknown Source)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    	at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
    	at com.sun.proxy.$Proxy196.selectList(Unknown Source)
    	at com.baomidou.mybatisplus.extension.service.IService.list(IService.java:370)
    	at com.zak.freight.file.service.AppendixServiceImpl.getByBiz(AppendixServiceImpl.java:111)
    	at com.zak.freight.file.service.AppendixServiceImpl$$FastClassBySpringCGLIB$$a7eb9fc3.invoke(<generated>)
    	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
    	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
    	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
    	at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
    	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
    	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
    	at com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationInterceptor.invoke(DynamicDataSourceAnnotationInterceptor.java:50)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
    	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
    	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
    	at com.zak.freight.file.service.impl.DefAppendixServiceImpl$$EnhancerBySpringCGLIB$$193176fb.getByBiz(<generated>)
    	at com.zak.freight.oauth.biz.OauthUserBiz.getUserById(OauthUserBiz.java:56)
    	at com.zak.freight.oauth.controller.UserInfoController.getUserInfoById(UserInfoController.java:43)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
    	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
    	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
    	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
    	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
    	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
    	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
    	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:645)
    	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:750)
    	at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124)
    	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    	at com.zak.basic.xss.filter.XssFilter.doFilter(XssFilter.java:66)
    	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
    	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
    	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    	at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
    	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
    	at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
    	at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    	at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    	at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    	at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    	at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    	at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    	at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)
    	at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    	at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    	at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    	at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    	at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    	at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    	at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)
    	at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    	at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)
    	at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
    	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
    	at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
    	at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    	at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    	at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)
    	at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
    	at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
    	at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
    	at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
    	at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    	at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
    	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
    	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1423)
    	at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1280)
    	at java.lang.Thread.run(Thread.java:748)
    Caused by: java.sql.SQLSyntaxErrorException: Unknown column 'size' in 'field list'
    	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
    	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
    	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
    	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:354)
    	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)
    	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:663)
    	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
    	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
    	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)
    	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)
    	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)
    	at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)
    	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
    	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)
    	at com.sun.proxy.$Proxy343.query(Unknown Source)
    	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
    	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
    	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
    	at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:81)
    	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
    	at com.sun.proxy.$Proxy342.query(Unknown Source)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
    	... 111 common frames omitted
    

    重现步骤

    1. 访问了什么接口?
    2. 传递什么参数?
    3. 后端控制台报了什么错?
    4. 前端控制台报了什么错?

    支持一下

    如果该issue帮助了你, 麻烦给项目点个star, 并给当前issue回复一下 “👍” 或者 “已解决”.

    opened by shawnxiang0511 4
  • lamp-cloud-pro-column源码编译后,未找到相应JAR包

    lamp-cloud-pro-column源码编译后,未找到相应JAR包

    版本信息:

    JDK 版本(必填) : 1.8.0 源码版本(必填):4.6 MySQL(必填): 5.7.9 Nacos(必填):2.1.0

    问题描述:

    lamp-cloud-pro-column源码编译后,只有3和4有,其他没有 1 docker build ‐‐build‐arg JAR_FILE=lamp‐authority‐server.jar ‐t lamp‐autho rity‐server:v1 . 2 docker build ‐‐build‐arg JAR_FILE=lamp‐file‐server.jar ‐t lamp‐file‐serve r:v1 . 3 docker build ‐‐build‐arg JAR_FILE=lamp‐oauth‐server.jar ‐t lamp‐oauth‐ser ver:v1 . 4 docker build ‐‐build‐arg JAR_FILE=lamp‐gateway‐server.jar ‐t lamp‐ gateway‐server:v1 . 5 docker build ‐‐build‐arg JAR_FILE=lamp‐msg‐server.jar ‐t lamp‐msg‐ server:v1 .

    报错截图

    重现步骤

    1. 访问了什么接口?
    2. 传递什么参数?
    3. 后端控制台报了什么错?
    4. 前端控制台报了什么错?

    支持一下

    如果该issue帮助了你, 麻烦给项目点个star, 并给当前issue回复一下 “👍” 或者 “已解决”.

    opened by victoirechan 4
  • src/main/filters 配置环境动态切换 这边是怎么操作的

    src/main/filters 配置环境动态切换 这边是怎么操作的

    版本信息:

    JDK 版本(必填) : 1.8.0 源码版本(必填): MySQL(必填): 5.7.9 Nacos(必填):

    问题描述:

    image

    动态切换 dev 与 prod

    报错截图

    重现步骤

    1. 访问了什么接口?
    2. 传递什么参数?
    3. 后端控制台报了什么错?
    4. 前端控制台报了什么错?

    支持一下

    如果该issue帮助了你, 麻烦给项目点个star, 并给当前issue回复一下 “👍” 或者 “已解决”.

    opened by yangyz 4
  • Using predictable/constant cryptographic key when creating and verifing Json Web Token.

    Using predictable/constant cryptographic key when creating and verifing Json Web Token.

    版本信息:

    JDK 版本(必填) : -- 源码版本(必填):3.7.0 MySQL(必填):-- Nacos(必填):--

    问题描述:

    Hi, we are a research group to help developers build secure applications. We designed a cryptographic misuse detector on Java language. We found your great public repository (i.e., lamp-cloud) from Github, and several security issues detected by our detector are shown in the following. The specific security issues we found are as follows: (1) Location: lamp-core-3.7.0 Package: top.tangyh.basic.context Class: ContextConstant.class
    Security issue: Using predictable/constant cryptographic key when creating and verifing Json Web Token. (2) Location: lamp-util-3.7.0 Package: top.tangyh.basic.jwt.utils Class: JwtUtil.class Security issue: Using predictable/constant cryptographic key when creating and verifing Json Web Token.

    报错截图

    image image

    重现步骤

    1. 访问了什么接口?
    2. 传递什么参数?
    3. 后端控制台报了什么错?
    4. 前端控制台报了什么错?

    支持一下

    如果该issue帮助了你, 麻烦给项目点个star, 并给当前issue回复一下 “👍” 或者 “已解决”.

    opened by xubowenW 3
  • 如何快速获得作者回复

    如何快速获得作者回复

    使用本框架时,如何快速作者回复?

    1. 在github、gitee、gitlab 对应的项目下,按照作者提供的问题模板,提交 issuesdiscussions
    2. 在qq群、微信群、qq私聊、微信私聊 @作者 ,并附上提交的 issuesdiscussions 地址 按以上步骤提问的同学,作者会在得空前提下,第一时间回复问题。

    不按照上述方式提问的,一般不予回复; 提 issuesdiscussions 寻求帮助,得到作者回复的优先级是最高的,无论你是 开源版用户 还是 企业版用户, 无论你在没在 企业版交流群

    help wanted 
    opened by zuihou 2
  • 提问&常见报错&提交bug 规范

    提问&常见报错&提交bug 规范

    遇到问题如何快速获取作者的回复?

    1. 在github 或 gitee 查找历史 issue 和 discussions ,看看以前有无类似问题和解决方案。
    2. 上一步没有找到解决方案, 在github 或 gitee 提交新的issue,描述清楚问题、提供有效的复现步骤、完整的报错日志、使用的是那个子项目
    3. 想要收到群主快速回复,发布issue后,可以在QQ群(群号:63202894、1011148503)中@群主(qq号:306479353)或者加作者qq或微信(tyh306479353), 并附带issue连接,作者会第一时间回复消息。
    4. 在群中直接提问的,除非你的提问够直观,能让作者一眼看懂问题,否则一律不回。 但还是建议大家多在issue中提问,因为大多数问题都是经常遇到的,在issue中形成记录后,可以给后来者参考和快速搜索。

    提问规范:

    # 版本信息 (必填):
    后端使用的是lamp-cloud还是lamp-boot:  ?
    前端使用的是lamp-web还是lamp-web-plus: ?
    JDK 版本(必填) : 11 or 8
    源码版本(必填):3.x ?
    MySQL(必填): 5.7.9 or 8.x
    Nacos(必填):2.0.3 or 1.x
    
    # 问题描述:
    
    # 报错截图
    
    
    # 重现步骤
    1. 访问了什么接口?
    2. 传递什么参数?
    3. 后端控制台报了什么错?
    4. 前端控制台报了什么错?
    5. 原来用的什么版本?现在升级到了什么版本?
    6. 启动报错还是运行报错? 运行报错是调用了那个接口?
    
    help wanted 
    opened by zuihou 0
dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务

一个基于springboot的快速集成多数据源的启动器 简介 dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。 其支持 Jdk 1.7+, SpringBoot 1.4.x 1.5.x 2.x.x。 文档 | D

baomidou 3.8k Dec 31, 2022
lilishop是采用JAVA开发的B2B2C多用户商城系统/电商系统/电子商务。基于当前流行技术组合的前后端分离商城系统:后端使用 SpringBoot、MybatisPlus、SpringSecurity、redis、ES、mysql、mongodb等主流技术,前端使用vue框架iview、uniapp。支持分布式部署,分布式事务,支持docker、k8s。商城支持 PC、WAP、H5、小程序、APP等各个客户端

Lilishop B2B2C商城系统 官方公众号 & 开源不易,如有帮助请点Star 介绍 官网:https://pickmall.cn Lilishop 是一款Java开发,基于SpringBoot研发的B2B2C多用户商城,前端使用 Vue、uniapp开发 系统全端全部代码开源 产品前后端分离

null 3k Dec 31, 2022
A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway, resillience4j, Kafka, Redis and MySQL.

High-availability-shopping-system A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway,

LeiH 1 Oct 26, 2022
Mint 0.1.1 public release, HWID System removed. Feel free to use. (Note: for all of u thinking its ratted; its not.)

Mint By: zPrestige_ | ! zPrestige_#1514 | git Kambing | dragonhacker32_#3091 | git FB | FB#7334 | git ZenovJB | Zenov#0603 | git Support no support No

null 17 Dec 2, 2022
Pre-release of JavaGachi

JavaGachi-PreRelease Pre-release of JavaGachi Despite having Gradle resources, delegate building to IDEA if you are interested in deploying the applic

null 1 Jan 6, 2022
ReleaseFab is a Java client application which automatically generates Release Notes for any project.

ReleaseFab is a Java client application which atomatically generates Release Notes for any project. The information can be gathered from multiple different sources including the source code itself, the Git repository and an Application Lifecycle Management System of your choice.

comlet Verteilte Systeme GmbH 7 Jun 10, 2022
循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2,博客Spring系列源码:https://mrbird.cc

Spring 系列教程 该仓库为个人博客https://mrbird.cc中Spring系列源码,包含Spring Boot、Spring Boot & Shiro、Spring Cloud,Spring Boot & Spring Security & Spring Security OAuth2

mrbird 24.8k Jan 6, 2023
一个涵盖六个专栏:Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式消息队列、分布式事务的仓库。希望胖友小手一抖,右上角来个 Star,感恩 1024

友情提示:因为提供了 50000+ 行示例代码,所以艿艿默认注释了所有 Maven Module。 胖友可以根据自己的需要,修改 pom.xml 即可。 一个涵盖六个主流技术栈的正经仓库: 《Spring Boot 专栏》 《Spring Cloud Alibaba 专栏》 《Spring Clou

芋道源码 15.7k Dec 31, 2022
一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。22篇文章,篇篇精华,32个Demo,涵盖大部分应用场景。

springcloud-learning 简介 一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。22篇文章,篇篇精华,32个Demo,涵盖

macro 5.6k Dec 30, 2022
Demo microservice architecture with Spring ,Spring Cloud Gateway , Spring Cloud config server , Eureuka , keycloak and Docker.

spring-microservice Demo microservice architecture with Spring ,Spring Cloud Gateway , Spring Cloud config server , Eureuka , keycloak and Docker. Arc

null 4 Sep 13, 2022
A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency

A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency.

Project-Hephaestus 2 Feb 8, 2022
基于SpringCloud2.1的微服务开发脚手架,整合了spring-security-oauth2、nacos、feign、sentinel、springcloud-gateway等。服务治理方面引入elasticsearch、skywalking、springboot-admin、zipkin等,让项目开发快速进入业务开发,而不需过多时间花费在架构搭建上。持续更新中

快速开始 先决条件 首先本机先要安装以下环境,建议先学习了解springboot和springcloud基础知识。 git java8 maven 开发环境搭建 linux和mac下可在项目根目录下执行 ./install.sh 快速搭建开发环境。如要了解具体的步骤,请看如下文档。 具体步骤如下:

zhoutaoo 7.9k Jan 6, 2023
springboot 框架与其它组件结合如 jpa、mybatis、websocket、security、shiro、cache等

致歉 由于自己懒以及身体对issuse 解决的不及时。请大家以后提issuse 的时候写清楚 模块名 比如“springboot-SpringSecurity4” 和问题,我会抽时间抓紧解决。 springboot-SpringSecurity0 包含两部分代码: 第一是 博客 springboot

abel 5.9k Jan 5, 2023
SpringBoot 基础教程 | 从入门到上瘾 | 基于2.0.0.M5制作

推荐阅读本教程的三大理由: 文章内容均为原创,结合官方文档和实战经验编写。 文章结构经过细致整理,对新人学习更加友好。 精选常用技术,不求全面,但求精华!! SpringBoot 源码精读 图文教程 源码下载:《SpringBoot 基础教程-Git 》 — Hey Man,Don't forget

一只袜子 2.5k Dec 29, 2022
springboot SSO 单点登录,OAuth2实现,支持App登录,支持分布式

smart-sso QQ交流群:454343484 ?? 、769134727 简述 smart-sso使用当下最流行的SpringBoot技术,基于OAuth2认证授权协议,为您构建一个易理解、高可用、高扩展性的分布式单点登录应用基层。 相关文档 smart-sso单点登录(一):简介 smart

Joe 1.9k Dec 31, 2022
一个能够获取随机图片的 Api,使用 SpringBoot 构建

Random-Image-Api Random-Image-Api 一个能够获取随机图片的 Api,基于 Spring Boot 构建 可读取本地图片列表的地址,并提供随机访问服务,可配置域名白名单访问 项目说明 程序启动的时候会自动加载 项目路径/list 文件夹下的所有列表文件; 图片列表文件:

陈亚伟 1.3k Dec 21, 2022
SpringBoot 脚手架,简化项目构建

EasyRiggerInitializr | SpringBoot 脚手架,简化项目构建 作者: 小傅哥,Java Developer, ✏️ 虫洞 · 科技栈,作者, ?? CSDN 博客专家 本代码库是作者小傅哥多年从事一线互联网Java开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教

小傅哥 81 Nov 20, 2022
基于 springboot websocket 的群聊实现

基于 springboot websocket 的群聊实现 功能列表 分布式 同一帐号多设备登录 群聊 多设备 简单鉴权 心跳检查 依赖 maven jdk11 redis redis 配置 redis 默认使用 localhost:6379。如果需要修改 host:port,可以修改 applic

yemingfeng 8 Jun 9, 2021