- 博客(104)
- 资源 (2)
- 收藏
- 关注
原创 Mybatis test条件表达式类型问题
一直说我传的这个type,(“w”),类型转换有问题,一直要给我转成数字类型的,我找了好久,百思不得其解,最终看到我choose when的代码。一开始我真看不出来这choose when有什么问题,就是很正常的字符串比较,直到我给**‘y’**加上toString,问题解决。记录一个使用mybatis时遇到的一个逆天bug,坑了我俩小时。
2024-02-02 16:31:00
559
原创 代码规范问题,“static“ base class members should not be accessed via derived types
这里使用了JSONObject来调用parseObject方法,检测工具会警告你请使用静态方法的基类来调用以便于代码的可读性,原因是因为源码中JSONObject继承于JSON。例如在使用fastjson时。
2023-10-11 10:25:41
1260
原创 使用webclient出现Exceeded limit on max bytes to buffer : 262144
由于公司技术升级,要求我用webflux的webclient替换原来的restTemplate,代码看起来很好改动,但是在改完后测试出现了262144
2023-10-09 19:29:56
1416
原创 Idea远程debug java服务
选择Remote JVM Debug,填写host,port参数,其他默认即可。ip地址0.0.0.0是允许所有ip访问,需注意安全。debug参数,指定监听端口,注意防火墙放行端口。idea选择edit configuration。启动jar包,并加入debug参数。上传jar包至linux服务器。可以进行愉快的debug了。出现以下即为连接成功。
2023-03-14 16:29:28
547
原创 RabbitMQ常见场景问题
一个queue,有多个consumer去消费,这样就会造成顺序的错误,consumer从MQ里面读取数据是有序的,但是每个consumer的执行时间是不固定的,无法保证先读到消息的consumer一定先完成操作,这样就会出现消息并没有按照顺序执行,造成数据顺序错误。保证MQ消息不重复的情况下,消费者消费消息成功后,在给MQ发送消息确认的时候出现了网络异常(或者是服务中断),MQ没有接收到确认,此时MQ不会将发送的消息删除,为了保证消息被消费,当消费者网络稳定后,MQ就会继续给消费者投递之前的消息。
2023-02-01 22:47:16
2112
原创 jdk1.8中用于判空的Optional.ofNullable()方法
在jdk1.8中,有了更为优雅的处理方式,使用Optional.ofNullable()方法,如果list为null,则将ofElse()中传入的list赋值给newList,反之,将list赋值给newList,避免了null指针异常。底层并不复杂,如果参数为null,执行empty()方法,否则执行of方法。业务开发中,时常要注意处理空指针异常,也就是变量为null的情况。of()方法,返回一个带参数的Optional对象。orElse()方法,参数不为null则直接返回。EMPTY,为一个空对象。
2023-01-11 10:27:24
2008
原创 优雅解决spring事务中异步发送MQ,Redis,RPC
我们在使用spring的@Transaction事务时,如果在事务中进行MQ,Redis,RPC等等远程调用时,spring的事务是无法回滚的
2022-11-08 11:04:47
963
原创 jenkins使用SSH Publishers远程发送文件成功但在服务器找不到对应文件
如果目录配置不对,你的脚本也无法执行,出现127报错,这是我自己尝试出来的,希望能帮助大家。 我这样写,最终jar包发送的位置是**/www/project/yuan_back**,当然,你需要先安装Publish over SSH插件,首先请检查你的系统远程服务器配置。检查你的任务配置中的服务器配置。先说结论:最终文件传输位置为。即配置远程服务器根目录。
2022-10-08 19:01:20
2883
1
原创 ES6新特性总结
ECMAScript 6.0 (以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言ES6既是一个历史名词,也是一个泛指,含义是5.1版以后的JavaScript的下代标准,涵盖了ES2015、ES2016、ES2017等等,而 ES2015则是正式名称,特指该年发布的正式版本的语言标准Symbol是ES6中引入的一种新的基本数据类型,用于表示一个独一无二的值。
2022-09-27 16:48:11
630
原创 String name = “小莫“;和 final String name = “小莫“;有什么区别?
RT,这是在写工具类时突发奇想,一下子懵逼了,想着这String本身不就是final修饰的吗,再加一个final有啥意义啊以上为脑子瓦特时的错误示范,切勿模仿,显然是对final关键字理解不到位了所以问题是,尽管String类是final类,但是为什么我们需要创建String" CONSTANT"变量作为最终变量?原因如下:final是对此处最终定型的字符串的引用的修饰!而不是字符串本身。在上下文中,final表示变量name只能分配一次。再次为其分配不同的String对象会导致编译错误。一个实例
2022-05-16 02:36:37
254
1
原创 java 多线程下载器 (线程池 io) 课程设计
多线程下载器介绍java se项目,将互联网下载资源进行拆分,通过线程池创建多线程下载合并,同时使用线程对下载进度信息进行监控,实现多线程下载软件架构jdk1.8安装教程引入IntelliJ Idea,加载maven找到main函数启动即可特技RandomAccessFile类的运用HttpURLConnection类的运用线程池的使用原子类LongAdder的运用CountDownLatch类的运用ScheduledExecutorService类的运用slf4
2022-05-12 14:09:56
303
1
原创 阿里java开发规范,为什么不要在 foreach 循环里进行元素的 remove/add 操作,你真的知道为什么吗
阿里java开发规范,为什么不要在 foreach 循环里进行元素的 remove/add 操作?官方案例阿里只提出了要求以及案例,但并没有给予解释,不知道大家是否有运行一下下面的案例代码呢?import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class Test6 { public static void main(String[] args) { Lis
2022-05-09 16:45:14
334
2
原创 ArrayList和HashSet线程不安全?源码解析及解决方案
线程不安全问题(ArrayList)线程不安全案例(Fast-fail)向ArrayList中添加随机元素,循环20轮public class test { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); for (int i = 0; i < 20; i++) { new Thread(
2022-05-05 22:41:25
318
原创 Spring的bean是怎么保证线程安全的
Spring的bean是怎么保证线程安全的单例模式与线程安全单例模式的意思是只有一个实例,例如在Spring容器中某一个类只有一个实例,而且自行实例化后并项整个系统提供这个实例,这个类称为单例类。当多个用户同时请求一个服务时,容器会给每一个请求分配一个线程,这时多个线程会并发执行该请求对应的业务逻辑(成员方法),此时就要注意了,如果该处理逻辑中有对单例状态的修改(体现为该单例的成员属性),则必须考虑线程同步问题。线程安全的解决办法SynchronizedSynchronized用于线程数据共
2022-04-22 13:30:29
4181
2
原创 为什么重写equlas方法必须要重写hashcode方法
为什么重写equlas方法必须要重写hashcode方法hash,hashcode方法是干啥的Java中的hash值主要是用来在散列存储结构中确定对象的存储地址的,提高对象的查询效率。hashcode方法就是用来高效判断对象是否相等的,一般用在equals前面,hash值相同即判断两对象相等,但是由于不同对象可能拥有相同的hash(hash冲突),因此需要equals再来补充对比equals和hashcode源码:public class Object { /* * Note that
2022-04-19 12:48:54
384
原创 java容器专题整理,源码分析,面试可用
List专题整理以下基于jdk1.8版本单列集合双列集合ArrayListArrayList底层就是数组,重点聊一下扩容机制ArrayList扩容机制当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData容量为0,第1次添加,则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍。LinkedListLinkedList的基本构成LinkedList本质是一个双向链表,由一个个的Node对象组成,如下图:Linke
2022-04-14 11:07:05
851
原创 jdk8和11中equals区别比较(String.equals)
jdk8和11中equals区别比较(String.equals)实例test.javapublic class test { public static void main(String[] args) { String a = "abcde"; System.out.println("a为"+a); String b = "abcde"; System.out.println("b为"+b); String c
2022-04-07 15:24:08
930
1
原创 ngrok内网穿透工具使用
内网穿透1.下载内网穿透工具下载ngrok 2. 设置authtokenngrok authtoken 26y23wgoy8AEsyn4CC9qfLbEvK0_2A4okRhSWNU6GprLQjyHZ3. 启动内网穿透ngrok http 80904. 测试外网访问http://922c-117-158-127-32.ngrok.io/api/order-info/list...
2022-03-28 20:03:16
389
原创 1. 引入Swagger3依赖以及UI美化
1. 引入Swagger3依赖以及UI美化 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency>
2022-03-28 19:55:08
5402
原创 SpringBoot+Vue 微信支付API V3
SpringBoot+Vue 微信支付gitee仓库链接,前后端和辅助资料都上传了wxpaydemo1.微信支付产品介绍微信支付主要包括付款码支付,JSAPI支付,小程序支付,Native支付,APP支付,刷脸支付等场景,本次主要学习Native支付,适用于pc网站,常见的微信扫一扫支付方式.2.前置工作(1)获取微信商户号微信商户平台:https://pay.weixin.qq.com/场景:Native支付 步骤:提交资料 => 签署协议 => 获取商户号(2)在微信开放平
2022-03-28 19:38:09
5423
4
原创 Springboot2.6+thymeleaf实现png和jpg图片格式转换
闲来没事哈,又写了个小工具,写着玩,后面打算用微服务集成一下,前端重写,写成一个工具箱,废话不多说上截图,代码仓库在最后自动识别哈,jpg和jpeg可以转png,png可以转jpg点击上传后稍等片刻即可下载gitee地址如下:gitee仓库...
2022-02-23 15:41:59
744
原创 Elasticsearch基本使用(基于7.17)
Elasticsearch(基于7.17)1.SearchApiES支持两种基本方式检索:通过使用 REST request URI 发送搜索参数(uri+检索参数)GET bank/_search?q=*&sort=account_number:asc通过使用Rest resuest body 发送搜索参数(uri+请求体)GET bank/_search{"query":{"match_all":{}},"sort":[{"account_number"
2022-02-22 20:13:46
2024
原创 springboot+thymeleaf实现pdf转word
闲来没事,做了这么个小工具,使用的是spire.pdf和spire.doc的免费版本直接上效果吧项目部署过了,不过本地能完美实现上了服务器出了点奇奇怪怪的bug,比如pdf大一点就处理不了了,反正在本地没问题,如果说有同学解决了请务必联系我给个项目地址吧(要是服务器还在的话)演示地址gitee仓库地址如下:gitee仓库运行很简单,改一下配置文件的ip和上传文件地址即可...
2022-02-16 18:05:40
804
3
原创 springboot 2.6.3集成swagger3启动失败解决方案
rt,springboot 2.6.3集成swagger3启动报错Failed to start bean ‘documentationPluginsBootstrapper’;解决方法,aplication.yml添加如下配置 mvc: pathmatch: matching-strategy: ant_path_matcher
2022-02-15 22:37:48
1597
原创 JSR303校验
JSR303校验JSR303常见注解javax.validation.constraints.AssertFalse.message = 只能为falsejavax.validation.constraints.AssertTrue.message = 只能为truejavax.validation.constraints.DecimalMax.message = 必须小于或等于{value}javax.validation.constraints.DecimalMin
2022-02-06 16:05:17
767
原创 swagger换新UI
swagger很多同学,尤其是做前后端分离开发,会在后端项目中加入swagger来自动生成文档,而且也能进行简单的接口测试,但是官方的ui很简陋而且并不是很贴合国人的审美和操作,所以一般会引入第三方的swagger-uiswagger-bootstrap-ui这是国人编写的一个swagger-ui,样式如下:maven仓库依赖:<dependency> <groupId>com.github.xiaoymin</groupId> <art
2022-01-31 21:52:56
4142
WebShop.zip
2021-01-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人