Eliauk
想修改第三方库的方法?我来教你
当业务中被第三方库的一些方法限制时,我们可以通过修改第三方库的方法实现来满足我们的需求 本文使用了byte-buddy[1]参考资料 1、场景 es用Query.Builder 构建条件的时候,查询字段太长了 被截断了 断点图如下 造成这种方法的原因 通过查阅源码发现他重写了toString方法,当构建的参数过长是就会截断 最后拼接… 所以造成了dsl截断 但是这个需求是必须要做的,我们可以修改这个maxToStringLength的返回值值来解决这个问题 2、如何修改? 上边只是一种场景,下边如何修改举例,就不使用公司项目是,我们从stream-query中选一个方法来修改 我们之间修改这个方法的内容,让他直接返回一个我们想要的值 2.1、引入byte-buddy 12345678910<dependency> <groupId>net.bytebuddy</groupId> <artifactId>byte-buddy</artifactId> <version>1.14.12 ...
如何将枚举中的数据写到配置文件中
1、 场景 当项目中存在一个枚举类,里边的数据不需要一直更新,但是在某些场景下需要进行配置时, 我们可能就要改一次数据就打一次包,这个样的话效率会很低所以可以放到配置文件中 2、 实现 3、 原始处理 1234567891011121314151617181920212223242526272829/** * @author Eliauk,微信:Cizai_,邮箱:zang.dromara.org <br/> * @date 2024/5/16 <br/> * @Copyright 博客:https://eliauku.gitee.io/ || per aspera and astra <br/> */@Getter@AllArgsConstructorpublic enum QaDataSetEnum { //生产环境 ALL("1794970287076651009", "综合知识库","1"), GE_REN_RONG_YU( "17931 ...
在SpringCloud中如何获取用户真实IP(避免各种问题)
大家平时获取用户的真实IP的时候可能会遇到的一些问题 如果发生问题可以按照以下思路排查应该会帮到你 1、查看Nginx配置 一般情况下,我们的项目都是通过Nginx进行代理的,所以我们需要查看Nginx的配置文件 12345678910111213141516location / {proxy_set_header X-Real-IP $remote_addr;}2. 使用X-Forwarded-For头字段:类似于X-Real-IP,可以使用X-Forwarded-For头字段来传递客户端的真实IP地址。在NGINX配置文件中,可以通过添加如下代码来设置X-Forwarded-For头字段的值:location / {proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} 查看是否有以上配置进行了代理转发 2、查看GateWay配置(如果单体项目没有使用网关忽略) 首先要查看网关中的过滤器链里边所有的自定义过滤器有没有对请求头进行了修改,如果有修改的话请根据当前业 ...
项目如何适配国产海量数据库
1、当前使用ORM框架以及配置 当前我使用的ORM框架是:Mybatis-Plus,然后进行了多租户的配置 使用依赖如下: 1234567891011121314151617181920212223<dependencies> <dependency> <groupId>com.gitee.sunchenbin.mybatis.actable</groupId> <artifactId>mybatis-enhance-actable</artifactId> <version>1.5.0.RELEASE</version> <exclusions> <exclusion> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-a ...
手写幂等性组件库
🥧封装幂等性组件库
ukey登录整体梳理逻辑
初始化ukey 绑定ukey和用户(前端打开web助手绑定) 通过硬件设备标识、公钥、证书 绑定用户 加字段还是建表? 安全管理员负责开启双因子认证 !!!前提 必须先将可以管理用户的几个用户绑定ukey不然谁都没办法登录了 账密用户登录 这个做一个配置 是否开启了双因子认知(这里要怎么去做配置,通过nacos还是持久化) 如果开启了的话需要输入pin0码 校验 前端调用web助手 拿数据 (考虑使用硬件设备标识 + token)做签名 然后调用后端接口传参 硬件设备标识 + token 1. (后端) 通过后端通过token拿到用户id,然后判断用户id与设备硬件标识是否一致,不一致抛出异常 2. 一致的话去验签 123456789101112131415161718192021// 验签伪代码public boolean verifySignature(String message , String signature, String userId) { try { ...
sql动态插入
1、场景需求 在版本迭代中要给租户添加菜单权限,但是现场的租户id肯定不和开发环境的租户id一致,所以需要动态的给租户添加菜单权限 2、动态插入 1INSERT INTO "nexusai".sys_tenant_menu(tenant_id, menu_id) SELECT st.id, 294254436813638 FROM "nexusai".sys_tenant st; 这样的话我们就可以动态的给租户添加菜单权限了会读取到租户表中所有的租户id,分别添加meni_id到对应的租户表菜单中间表中
合并excel并筛选指定表头数据
1、需求 有多个excel文件,每个文件都有多个表头,现在需要将这些excel文件合并成一个excel文件,并且筛选出指定表头的数据。 2、代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576@Value("${OriginalFile}")private String originalDocument;@Value("${finalDocument}")private String finalDocument;private static int findColumnIndex(Sheet sheet, String headerName) { Row headerRow = sheet.getRow(0); // 假设第一行是表头 if (h ...
使用Forest对接谷歌Gemini
1、前置需要 申请Gemini账号,并获取API Key 官网地址:Gemini 2、测试所引入依赖 123456789101112131415161718192021222324252627282930313233<dependency> <groupId>com.dtflys.forest</groupId> <artifactId>forest-spring-boot-starter</artifactId> <version>1.5.33</version></dependency><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId></dependency><dependency> <groupId>cn.hutool</groupI ...
Ioc/Aop框架如何集成FolkMQ
1、部署FolkMQ 这里我是使用的docker-compose部署的,如果是本地部署,请自行修改docker-compose.yml文件 现在我使用的版本是1.0.20 1234567891011121314 folkmq-server: image: noearorg/folkmq-server:1.0.20 container_name: folkmq-server ports: - 8602:8602 - 18602:18602 volumes: - ./data/broker:/data - ./logs/broker:/logs environment: - folkmq.admin=zangzang #管理后台密码 - folkmq.access.folk=sk1 #消息访问账号,可以配置多个# - folkmq.access.ak2=sk2 ...
Git操作规约
2ddec83a87db3033ff4ab408c7ae30ff2eee36628ac8c932ee1030cdd143b94295fe7f6d8d15b674e517c1f891b48e161229d86c5f5cc4563b1009fdf3b546d5d003bbb3811f0997eaf0caf7de3a0d915079cb6a2050d43887a7aa4266b49cf43a0306d6a5a1251d30097f4b67fe3cfd8911144ef191adc62e82ab7ae86316d3d7779af3d7baa6faad268a2c853d858cf581551675428e859190ec62b2c996a861a44229bf4750ee18abe2b8a9596c61ca52d362a7a482dd3f9da23d697eff9851f9aa8e64b75a8857ace83b9d7dc15f93f7c98d5c7065b54cd35710b00d6c56e1aa9bbb0f840e511f79e649c1314f53d9dd536d1c01c9706 ...
项目优雅的实现责任链模式
🥧本文会介绍在项目中如何优雅的实现责任链模式
avatar
🐟认真摸鱼中
Eliauk
Future is now 🍭🍭🍭
前往小窝
公告栏
我是Dromara社区的一员并且是Easy-ES、Stream-Query的Committer,热衷于Open Source。有什么疑问可以加我微信Cizai_讨论一些技术问题


Dromara 是由国内顶尖的开源项目作者共同组成的开源社区。提供包括分布式事务,流行工具,企业级认证,微服务RPC,运维监控,Agent监控,分布式日志,调度编排等一系列开源产品、解决方案与咨询、技术支持与培训认证服务。技术栈全面开源共建、 保持社区中立,致力于为全球用户提供微服务云原生解决方案。让参与的每一位开源爱好者,体会到开源的快乐。Dromara开源社区目前拥有10+GVP项目,总star数量超过十万,构建了上万人的开源社区,有成千上万的个人及团队在使用Dromara社区的开源项目。
小站资讯
文章数目 :
56
本站总字数 :
6.7w
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面