- 博客(32)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注

原创 dubbo 服务同时启动导致的No provider available from registry localhost:9090 for service问题的解决及原因分析
使用的相关版本:注册中心:Nacos1.3.1使用的dubbo注册类:DubboCloudRegistry由于涉及到的一些spring 启动过程一些扩展点的执行顺序,所以下面先给出相关扩展点的执行顺序图(只包含涉及到的扩展点)。对spring的启动过程很熟悉的可以直接跳过。
2024-03-19 22:00:00
2328

原创 字典枚举扩展工具,简化查询字典表字段和枚举字段映射实体的开发
一、背景项目开发中实体类少不了一些枚举、字典和url等字段。而在实体中查出这些字段时经常需要一些额外的编码查出如枚举对应的中文描述、字典对应的中文描述、url拼接上ip、端口等前缀。二、本工具用处:本工具主要用于减去上面的额外编码,实体类中可以直接配置枚举类、字典类、url等。然后通过本工具自动绑定需要返回的如枚举中文描述的额外信息。
2021-12-19 19:20:13
1328

原创 springboot proguard 代码混淆
后面会给出我的proguard-maven-plugin插件的相关配置1.混淆后自己全部代码没有被放入混淆后的jar包里(jar\BOOT-INF\classes 里面不包含com)原因:proguard-maven-plugin插件放到了spring-boot-maven-plugin插件后面,应该是因为spring-boot-maven-plugin放在前面会先执行spring-boot-maven-plugin的repackage再执行proguard-maven-plugin的混淆..
2020-12-29 16:35:49
8538
7

springboot swagger 同一个model 根据group 在不的api中展示不同的字段和描述
主要是为了让一个实体可以用于不同的接口展示不同的字段,减少dto的数量,但是不宜过度使用,不然代码就被注解占满了@ApiGroupProperty(value={GroupsUser.Update.class},description="")用于给Model字段分组,value控制所属组,description可以设置不同的字段描述@ApiGroupProperties(value = {@ApiGroupProperty({)}})可以包含多个@ApiGroupProperty以便给不同分组的Mo
2020-11-24 11:07:51
4999
9
原创 java文件按行写入数据后并创建行索引及查询
用于往文件中写入数据并创建索引String path= "/file/张三/";//如果文件已存在写入会报错if (!i++) {相关配置:配置一个文件最大存储的行数path:文件要存储的路径。可以自定义规则: 索引固定宽度因子,用于计算索引文件中索引的固定宽度。配的越大越浪费空间,配小了更容易触发调整固定宽度charset:配置写文件的编码writeMode: 写入模式: 不允许重复写入,当写入文件夹已存在数据,会直接抛异常OVERRIDE。
2025-01-22 23:46:46
868
原创 springboot的 nacos 配置获取不到导致启动失败及日志不输出问题
1. 本地启动应用时,一切正常,但是部署docker后,会因为获取不到nacos中的配置导致服务启动失败。2.当docker中的服务一直重启,可能会突然某一次启动成功,之后只要不重新构建docker镜像,就不会再出现nacos配置获取不到的问题。3.明明获取不到nacos配置,但是却没有输出任何nacos相关的日志。
2024-12-07 00:19:14
2431
2
原创 nacos bootstrap.yml 和 spring.config.import 加载配置的流程区别
加载流程如下图所示从图中可以看出,:1.bootstrap.yml 的加载是在 BootstrapApplicationListener.onApplicationEvent 接收到 ApplicationEnvironmentPreparedEventEvent 事件后另起一个 SpringApplication 触发的。2.之后在初始的 SpringApplication 中 通过 EnvironmentPostProcessorApplicationListener.
2024-12-07 00:16:35
603
原创 自定义类加载器使用geotools读取高程报 ImageRead: No OperationDescriptor is registered 问题
项目中使用了 自定义classLoader ,,然后使用下面简化后的代码读取高程数据此时会报如下错误 ImageRead: No OperationDescriptor is registered in the current operation registry under this name.注意:项目中 geotools 的相关 jar 包都是由自定义classLoader加载的, AppClassLoader 中并没有加载 geotools 相关 jar 包,这也是问题产生的前提条件。相关依
2024-08-25 17:40:08
963
1
原创 java jts 针对shp含洞多边形进行三角剖分切分成可行区域
只需要将本文生成的三角形转换成上面库可以解析的navmesh文件,即可用上面的库进行寻路navmesh的结构如下图所示主要就是介绍下和是所有多边形的点集数组,如下图,表示的是多边形所有顶点。多边形的所有标识,存的值表示的是中的数组下标对应的点。具有以下特性1.每三个点表示一个三角形,比如第1-3个值0,1,2表示组成一个三角形,第4-6个指0、2、3又是一个三角形。2.当连续的三角形有两个下标是一样的,表示是共边三角形,可以组成一个凸多边形。所以生成。
2024-07-23 22:25:08
752
原创 自定义注解处理器生成代码
以下方式会基于已有的类创建新的类,且创建的类名不能和原类名一样。不能在已有的类中新增代码然后基于已有的类进行调用。如基于原类生成builder。1.字符串拼接源码中的类为,生成代码的方式是用字符串拼接的,可读性较差2.使用Javapoet源码中的类为,使用Javapoet生成代码,比较优雅,可以自动import引用的类。Javapoet是基于JavaWriter实现的3.使用JavaWriter源码中的类为,使用JavaWriter生成代码。
2024-06-02 17:02:54
822
原创 Docker HTTPS api V2 Manifest V 2, Schema 2 下的免装docker下载镜像的方法
本文提供代码主要是基于提供的代码修改的。链接中提供的代码应该是是基于实现的,在Schema 2下无法正常运行,而开源作者没有进行相应的更新。后续对上述链接里的代码简称为原代码。
2024-05-22 22:41:45
1324
1
原创 docker ENTRYPOINT [“sh“,“-c“,“java“,“-jar“,“Hello.jar“] 启动失败问题分析
因为没系统的学过linux语法,所以才会产生如下疑问。是可以支持多个参数用逗号分割的,所以个人理解上面的两种配置是等同的。了,使其作为一个参数传给sh执行。配置时就只能跟一个参数,第三个参数需放完整命令。用如下命令可以查看容器启动时执行的命令是什么。继续用如下命令查看容器启动时执行的命令是什么。如果想把完整命令拆成多个逗号分割,就不要加。运行容器后查看日志看到的效果如下所示。,启动对应容器时会无法正常运行,只会取后面的第一个参数,既。启动容器运行的命令如下所示。启动容器运行的命令如下所示。
2024-03-09 21:17:28
1272
原创 500个线程运行串行原因排查
项目中有业务需要开启500个线程执行,需要证明有500个线程在执行。用的是一台128核的电脑。服务用docker启动的。所以理论上应该是要有128个线程并行执行的。
2023-07-09 13:58:16
375
原创 发布依赖到maven中央仓库
先讲下碰到的问题。后面再上具体流程Group id有自己域名的配置自己域名,没有的配置io.github.${github用户名} ,后面审批的时候需要对Group id 对应的域名进行认证。网上有些教程让配置com.github,目前com.github已不可用。
2023-03-26 10:57:37
1680
原创 jackson BeanDeserializer 获取解析的json字段所在对象错误问题及原因分析
用spring自定义Deserializer并且需要获取到当前解析字段所在对象实例时,某种情况会导出获取到的对象实例并非当前字段所在对象。
2022-11-27 17:38:17
1457
原创 spring-cloud-starter-dubbo使用dubbo-admin并集成dubbo-api-docs
一.相关版本信息spring-cloud-starter-dubbo 2.2.6.RELEASEDubbo admin 0.3.0dubbo-api-docs 2.7.8.1二.dubbo-admin相关spring-cloud-starter-dubbo使用DubboCloudRegistry 的话是目前版本是不支持sdubbo-admin的,所以本文的方法是排除DubboCloudRegistry,然后配置NacosRegistry(也可以用zookeeper),请知悉1.
2022-01-19 21:02:58
3517
2
原创 java key 粒度加锁工具,有考虑其他如redis锁切换扩展
首先是key粒度的加锁工具第一种实现:public class ReentrantKeyLock { public Lock getLock(String lockKey) { Assert.notNull(lockKey, "lockKey不能为空"); return new KeyLock(lockKey); } public static class KeyLock implements Lock, java.io.Serial.
2021-11-17 19:52:55
841
原创 mybaits TypeHandler构造函数传入的type对于枚举和普通类子类的区别分析以及如何获取具体子类的Type的方法
首先mybatis的TypeHandler可以通过构造方法传入一个ClassType,但是这个Type却不一定是当前字段的ClassType.对于枚举和普通类是不一样的
2021-06-28 17:49:30
499
原创 idea springboot 分环境打包以及用deployHelper分环境自动部署
先上配置,只展示关键配置1.pom.xml<profiles> <profile> <id>local</id> <properties> <package.environment>local</package.environment> </properties>
2021-04-27 16:04:08
637
原创 企业微信 vue ios 出现 63002,INVALID SIGNATURE问题
下面是官网的说法,可以先按下面的方法进行排查排查(https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#66) 1.确认签名算法正确,可用http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign页面工具进行校验。2.确认config中nonceStr(js中驼峰标准大写S), timestamp与用以签名中的对应noncestr, timestam...
2021-04-01 18:19:52
642
原创 一个简单的工具类 日志合并成块打印
场景:日志需要跨方法甚至跨类打印,又想让一个线程的打印可以按顺序成块打印例:如HttpUtil工具类发起工具类:public String postForm(String url,HttpForm param){ log.info("请求开始--"); log.info("url:[{}]",url); log.info("param:[{}]",param); post(url,param.toString());}public String postJs
2021-02-05 13:39:16
658
5
原创 docker 部署springboot 不需要重新build镜像push的方法(不考虑集群)
因为docker基于正常的8-jre镜像(非alpine,本身就300M) build springboot的镜像后正常后至少300M以上,如果每次部署都要build, build需要时间,push和pull也需要时间.下面说一种不需要重新build方法:我springboot install后的包叫zzz.jar(100M)。docker构建后 启动起来,容器名称叫zzz-docker.执行如下指令(容器要正常启动才可以)docker cp zzz.jar zzz-docker:/do
2021-01-14 14:32:20
1113
原创 一台linux elasticsearch kibana 启动两个实例
一.elasticsearches是安装在/usr/local/elasticsearch-7.9.0下,先cd到/usr/local/elasticsearch-7.9.0目录下安装可参考https://mp.youkuaiyun.com/console/editor/html/108624329创建个新用户(和第一个实例不一样)#添加新用户(和第一个实例的用户不一样)useradd member2#复制一份新的配置目录cp -R config config2#把配置目录的权限赋给新建的用.
2020-10-23 15:34:17
617
原创 elasticsearch7.9.0 kibana ik分词器linux安装 systemctl配置开机启动
先创建个用户 useradd member自行安装jdk8记得关闭防火墙或者开放相关端口(systemctl stop firewalld 可以暂时停止防火墙,防火墙开着且没开放相关端口会导致其他电脑访问不到es,kibana)一.elasticsearch先从官网https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-9-0下载elasticsearch-7.9.0-linux-x86_64.tar.gz把安
2020-09-18 19:49:43
1168
原创 springboot mybatisplus 枚举转换
一:mybatis到实体类的枚举转换application.yml加入typeHandlersPackage的配置#yml配置BaseTypeHandler扫描包的位置mybatisPlus: typeHandlersPackage: com.mybatis.handler/*** 基本枚举的实现类*/public interface BaseEnum { /** * 获取枚举值 * * @return */ Int.
2020-07-21 11:47:46
2498
3
原创 quartz报错Couldn’t obtain triggers for job:connection closed
运行环境 springboot2.1.1 quarz2.3.0 jdk8 war包运行在tomcat911:00:57.624 [http-nio-8082-exec-2] ERROR c.k.f.w.e.GlobalExceptionHandler - [handleException,83] - Couldn't obtain triggers for job: connection closedorg.quartz.JobPersistenceException: Couldn't obta.
2020-05-15 16:42:45
2776
原创 hashmap转红黑树的两个条件
一个是链表长度到8,一个是数组长度到64.上图所示是判断链表长度到达8调用treeifyBin方法转换红黑树,TREEIFY_THRESHOLD的值为8上图所示是treeifyBin的方法代码,开头有判断数组长度是否小于64,小于则进行扩容,否则转红黑树.MIN_TREEIFY_CAPACITY的值为64....
2018-10-08 15:16:20
34468
35
springcloud oauth2.0 jwt 前后端分离的几个问题
2019-04-23
springMVC 后台接收 前端传过来的时间字符串问题
2016-11-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人