- 博客(37)
- 问答 (1)
- 收藏
- 关注
原创 feign.FeignException$BadRequest: [400 Bad Request] 居然是因为这
最后偶然的情况下,改另一个业务功能时,改动了一下腾讯IM的功能,后面一测试发现feign接口居然通了,万万没想到。
2024-09-15 14:50:12
760
2
原创 spring-boot3.3.0 整合springdoc-openapi2.x问题
springboot3.x+springdoc2.x,swagger页面打开失败。Please indicate a valid Swagger or OpenAPI version field. Supported version
2024-08-19 15:49:38
469
原创 使用exe4j把jar打包成exe
我最开始做的时候就是个main函数运行,所以点了exe啥反应都没有,但是能看到因为程序运行而产生的日志记录,所以虽然看不到,单实际还是在运行的。,我开始是放在一个中文的目录下面的,一直打不开,还没任何提示,后面想着重新换个位置就可以了。点了exit退出后,要弹窗提示你要不要保存配置啥的,直接no就行了,要yes也行,看你。最近领导要求我搞个exe程序,给安装在门卫室的电脑上用,这个电脑没有安装jdk。后面我就做了个丑陋GUI,所以运行后有个窗口,就能直观的看到了。需要注意的是,安装路径里面。
2023-12-22 17:04:01
1200
原创 idea使用 Translation 插件 提示更新 TKK 失败,请检查网络连接
更新 TKK 失败,请检查网络连接没有默认勾选修改hosts
2022-09-29 17:22:37
1359
1
原创 内存安全的队列
拿来就用的内存安全的队列MemoryLimitedLinkedBlockingQueueMemorySafeLinkedBlockingQueue
2022-06-24 10:07:55
525
原创 sql组合字段in查询
前段时间看到了一个sql的用法,是一个早就有的sql语法,但是从来没使用过,也没见过,当时就看了一下。今天业务上有个需求刚好符合使用这种语法的情况,我就想去找找,结果忘记这个语法叫什么名字了,资料来源也找不到了,抓瞎…只能记得大概怎么写,然后尝试了一下,可以。所以记录一下,怕后面又忘了。一般使用in 大多是 select * from table where field in( v1,v2,v3,v4,...) 这样的用法,mybatis写法也是 field in ( <fore
2022-05-31 11:25:29
6172
1
原创 图片拆分的工具
来源:https://juejin.cn/post/7012100035814883336import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;public class SplitImg { // 图片路径 private static final String IMAGE_FILE_PATH = "F:\\logs\\bf
2022-05-17 16:52:47
231
原创 @ConfigurationProperties获取apollo配置变更
引入apollo做配置中心,修改配置发布后项目中可近实时的获取到修改过的配置,但是这个默认只对@Value有效,对使用@ConfigurationProperties这种形式来获取配置的就无效了。然后就搜了一下,找到一下几篇文章:1.https://blog.youkuaiyun.com/godloveleo9527/article/details/1213310742.https://www.jianshu.com/p/7d91cb5109a43.https://blog.youkuaiyun.com/qq_226264
2022-05-06 13:57:30
1149
原创 springboot自定义版本号
1.自定义版本号注解@Target({ElementType.METHOD, ElementType.TYPE}) // 类上和方法上都可以@Retention(RetentionPolicy.RUNTIME)@Documented@Mapping //spring的元注释,表示 Web 映射注释public @interface ApiVersion { /** * 自定义版本号 */ int value() default 1;}2.自定义版本号筛选规则实现RequestC
2021-12-27 15:02:48
1143
原创 记一个日志切面及事务传播的问题
被这问题搞了一下午。背景:有一个接口方法,添加了事务注解,简化后大概长这样:这个方法可能会抛出异常;然后还有个日志切面,环绕这个接口,大概长这样:问题:单元测试时,调用这个目标方法出现异常了,目标理应回滚,日志理应仍被记录;但是发现没有回滚,新建订单成功入库了,日志也被记录了。发现是 日志的切面和目标方法事务的切面发生了事务传播(网上说更改切面执行顺序、更改事务传播方式、可以解决);后面我就把事务范围给说小了,目标方法就可以正常回滚了。大概长这样:用这种方式需要再启动类上加上: @E
2021-12-23 10:32:08
351
原创 记一次dubbo调试的简单错误
问题:启动了生产者服务,启动成功;消费者端用单元测试跑,开始连不上ZK;后来检查地址 写正确后可以连接;调用服务一直失败,报错:No provider available from registry xxx.xx.8.1:2xx1 for service com.xx.xxRemoteService on consumer xxx.xx.x.x use dubbo version 2.7.5, please check status of providers(disabled, not register
2021-12-22 17:22:00
503
原创 java.util.BitSet -> BitMap
看大佬的BitMap算法,记录一下。原文:https://blog.youkuaiyun.com/pipisorry/article/details/62443757对于大量的整数数据排序、去重、判断是否存在 贼好用。java.util.BitSet有该算法的实现,直接来个示例: int[] ints = new Random().ints(1, 100).limit(10).toArray(); System.out.println("生成的随机数组:" + Arrays.toString(i
2021-12-17 15:56:00
515
原创 浅看ThreadLocal
看了下ThreadLocal的源码,对这个有了一个基本的了解。只简单的追了一下源码,解析得不到位,各位要深入了解的可以看看源码和看看大佬的解析。ThreadLocal提供了线程的局部变量,让每个线程通过get/set来操作这个局部变量;不会和其他线程的局部变量冲突,实现线程的数据隔离。主要涉及到4个类,分别是:Thread、ThreadLocal、ThreadLocalMap、Entry。其中ThreadLocalMap是ThreadLocal的静态内部类,Entry是ThreadLocalMap的
2021-12-16 17:44:23
149
原创 常用的线程同步工具
在java.util.concurrent包下有很多线程相关的类,其中CountDownLatch、CyclicBarrier、Semaphore算是比较常用的,其它的还有Phaser、Exchanger…等等。只是几个工具类的简单使用,原理请大家自行搜索。CountDownLatch定义是允许一个或多个线程一直等待,直到其他线程完成他们的操作,其再继续执行。常用API : await()、countDown();举个例子(可能不太恰当):麻将铺老板,现在他铺子里有4个人在打麻将,CountD
2021-12-16 16:20:08
229
原创 用Fork/Join实现归并排序、求和
最近看fork/join框架的时候发现这玩意儿跟归并排序简直就是绝配。归并排序归并排序的思想是才有分治策略将大问题拆分成一些小问题递归求解,然后将各个小问题的解合并得到最终结果。拆分合并步骤:一:拆分:1)一个大无序序列从中间拆分成2个无序序列;2)上一步拆分出的2个无序序列分别又拆分成2个无序序列;3)重复步骤2,直到拆分后的序列只包含一两个数的序列。二:求解合并:1)选择2个相邻的数进行排序构成一个短的有序序列;2)选择2个相邻的有序序列排序构成一个大的有序序列;3)重复步骤2,直
2021-12-16 14:54:53
969
原创 G1垃圾回收器
参考大佬文章整理笔记。原文:https://blog.youkuaiyun.com/Java_3y/article/details/121529431CMS垃圾回收的停顿时间不可预估,G1是在CMS上的升级,可以设定一个预想的停顿时间,G1会尽量满足。G1其实就是全局并发标记 + 拷贝存活对象之前的堆分区是物理分区,G1垃圾收集器不在是物理分区,而是逻辑分区。分代的概念还是一样的。下图是G1的堆空间分布大对象区域是用来存储超过Region内存的一半的大对象。以前是对整个堆进行垃圾回收,区域大回收时间就不
2021-12-14 15:10:34
391
原创 CMS垃圾回收器
参考大佬文章整理笔记,原文:https://blog.youkuaiyun.com/Java_3y/article/details/121485184如果用Seria和Parallel系列的垃圾收集器:在垃圾回收的时,用户线程都会完全停止,直至垃圾回收结束!CMS垃圾回收器的设计目的?CMS的全称:Concurrent Mark Sweep,翻译过来是「并发标记清除」;它的特点是并发,在垃圾回收时用户线程仍然可以继续工作,避免老年代GC出现长时间的卡顿Stop The World;CMS的Stop The W
2021-12-14 15:00:01
218
原创 JVM内存结构
参考大佬文章记录的笔记。原文链接:https://blog.youkuaiyun.com/Java_3y/article/details/121392458学习请跳转原文,里面更详细,更有图片说明。1.JVM内存结构?JVM内存结构分为5大块:方法区、堆、程序计数器、虚拟机栈、本地方法栈。程序计数器:线程切换时用来保存当前线程信息,主要记录各个线程执行的字节码地址。(分支、循环、跳转、异常、线程恢复等都依赖于计数器)虚拟机栈:每个线程创建时都会创建一个虚拟机栈,每次方法调用都会创建一个栈帧,每个栈帧包含:局
2021-12-06 10:34:47
290
原创 java内存模型
参考大佬的文章,整理一下java内存模型笔记。原文链接:https://blog.youkuaiyun.com/Java_3y/article/details/1213479761.为什么存在java内存模型?java为了屏蔽硬件和操作系统访问内存的各种差异,提出了内存模型的规范,保证java程序在各个平台下对内存的访问都能有一致的效果。它是一种规范,java虚拟机来实现这个规范。主要有以下几块:Java内存模型的抽象结构;happen-before规则;对volatile内存语义的探讨。2.java内
2021-11-30 15:40:54
202
原创 JVM垃圾回收
1.什么是垃圾?只要对象不再被使用就是垃圾。2.如何判断为垃圾?可达性分析算法和引用计数法,jvm使用的可达性分析算法。引用计数:对象被引用则+1,引用失败则-1,如果为0,则说明没有被引用,缺点是无法解决循环依赖;可达性分析算法:从 GC Roots 出发,向下搜索,当对象到 GC Roots 没有任何直接或间接的引用就说明该对象是垃圾;3.哪些对象可以作为 GC Roots?如虚拟机栈的栈帧、类的静态变量、常量、java的本地方法 等活跃的引用。4.常见的垃圾回收算法?标记清除、标记复
2021-11-26 17:10:08
372
原创 设计模式之观察者模式
设计模式之观察者模式以下内容全是自己参考网上资料,自己对观察者模式的理解,错误之处请各位大佬指正。优点:松耦合,一方发生改变,另一方不受影响。1.观察者模式是一种一对多的,当一个对象(被观察者)发生改变,其他多个对象(观察者)都会收到通知。2.跟我们熟悉的发布订阅差不多,发布的(被观察者)、订阅的(观察者)。3.被观察者内部保存有所有观察者的引用集合。4.当被观察者发生改变时,通过内部保存的观察者集合,用每个观察者对象去调用发生改变时的回调方法,就实现了被观察者发生改变就通知所有的观察者。就好
2021-09-03 15:41:06
324
1
原创 Feign调用时添加信息到请求头
Feign调用时添加信息到请求头,如token、session等;来源:1: https://blog.youkuaiyun.com/weixin_40402688/article/details/99684206.2: https://blog.youkuaiyun.com/crystalqy/article/details/79083857.来源1的方法3的部分代码 与来源2的代码 差异...
2020-11-20 16:30:11
1552
原创 mongodb简单安装配置
参考资料: https://blog.youkuaiyun.com/yzh_1346983557/article/details/81735755. 一个简易的文件系统,主要提供文件上传、下载、在线显示这3个功能,该系统使用的mongodb作为存储。 昨天把这个系统从git上clone下来,本地启动后发现mongodb连接不上,问了一下运维,结果说上面的mongodb早就没有,....所以还得现去安装一个,于是百度后开始了我的第一次mongodb的安装配置之旅,还好一次就成功。记录一下安装配置的过程。1.下
2020-08-27 14:34:40
168
原创 mybatis 表下划线字段名自动转实体类的驼峰属性名
如:字段名:user_id,user_name;实体类驼峰属性名:userId,userName写sql的时候直接写字段名,不用额外编写映射map,select user_id,user_name from user1.一般情况一般情况下 在 properties文件中配置: mybatis.configuration.map-underscore-to-camel-case=true,即可,yml文件同理。2. 多数据源情况多数据源情况下,直接像上面那样配置是不起效的,需要像如下这样配置:1
2020-08-25 12:33:56
1187
原创 简单的 springboot + eureka + feign
简单的 springboot + eureka + feign 应用 这3者组合会导致默认返回数据格式由json变成了xml 看了一些教程资料,记录一下基础的入门,还有很多强大的功能需要继续去学习创建3个项目,server(作为注册中心)、producer(生产者,即提供服务的)、consumer(消费者);3个项目的创建过程基本一致:最后 finish,完成项目创建。1.server项目单纯的作为一个注册中心,这里没作其他用途(也可以作为生产者或消费者),只需要在启动类上加上
2020-08-19 14:38:21
688
原创 通过注解执行异步任务
看了很多资料,然后整理了自己需要的内容。注解:@Async看了很多资料,然后整理了自己需要的内容。1.启动类或者配置类上添加开启异步的注解:@EnableAsync;2.编写要异步执行的方法;如果没有自己配置线程池,则会用自带的默认线程池(SimpleAsyncTaskExecutor)去执行异步任务;如果有自己配置线程池,则会用自己的线程池去执行异步任务;如果自己配置了多个线程池,可以在注解@Async中指定使用哪个线程池。需要注意的是:需要异步执行的方法,与调用它的方法不要在同一个类中。
2020-06-12 14:27:09
251
空空如也
mybatis-plus 插入mysql,小数为何会自动四舍五入
2021-12-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人