- 博客(216)
- 资源 (15)
- 问答 (4)
- 收藏
- 关注
原创 链接VPN后push GitHub代码注意事项
将OpenSSL SSL_read: Connection was reset, errno 10054翻译成中文打开SSL SSL_read:连接已重置,错误 10054。这样解释可能也比较模糊,通俗点说服务器的SSL证书灭有经过第三方机构的签署。但也有人说可能是网络不稳定,连接超时导致。如上图所示,地址与端口号为:127.0.0.1:7890。①打开 设置>网络与Internet>代理。②记录下当前系统代理的IP地址和端口号。注意修改成自己的IP和端口号。③修改git的网络设置。
2023-07-01 10:22:48
2953
原创 用insert into插入select结果时如需固定值怎么办
insert into tableA (列1,列2,列3) select 列1,列2,'123' from tableB 【字符串常量】insert into tableA (列1,列2,列3) select 列1,列2,123 from tableB 【数值常量】insert into tableA (列1,列2,列3) select 列1,列2,常量 from tableB。A中有3例,B表中你只能获得2列,可以用常量占位解决。
2023-04-13 10:37:33
1241
原创 springboot 下mybatis-plus 如何打印sql日志和参数到日志文件
网上很多说法打印sql日志的方法在application.properties配置文件中mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl但是上述配置只能将sql日志打印到控制台,无法打印到日志文件中参考下面这个文档,将sql日志打印到日志文件中https://www.ius7.com/a/3051:设置mybatisplus包下的日志级别为DEBUG;2:设置项目mapper
2023-03-21 18:21:39
2750
原创 fastjson反序列化多层嵌套泛型类与java中的Type类型
参考fastjson反序列化多层嵌套泛型类与java中的Type类型 - liqipeng - 博客园fastjson使用TypeReference反序列化2层以上嵌套泛型类 以及注意使用ParameterizedTypeImpl在之前的fastjson版本的一个坑fastjson反序列化使用不当导致内存泄露 - liqipeng - 博客园...
2022-06-24 11:32:47
1113
2
原创 mysql修改表、字段、库的字符集
# 修改数据库字符集ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];# 把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]# 如:ALTER TABLE logtest CONVERT TO CHARACTER SET .
2022-04-12 16:06:20
9521
1
原创 MySql 多表使用LEFT JOIN 索引失效
1.背景生产环境一条查询三张表的sql语句,使用left join,查询时间特别长。2.sql语句SELECT o1.id, o3.repayment_num, o1.period_num, o2.credit_amountFROM test_o1 o1 LEFT JOIN test_o2 o2 ON o1.credit_num = o2.credit_num LEFT JOIN test_o3 o3 ON o1.period_num = o3.period_numWHERE 1 =
2022-04-12 16:01:44
8058
1
原创 Maven filter说明
通过maven进行多环境的配置<properties> <profiles.dir>src/main/profiles</profiles.dir></properties><profiles> <profile> <id>dev</id> <properties> <p
2022-01-20 16:26:56
730
原创 2020-09-14
背景使用注解参数校验,可避免业务代码中无休止的参数校验判断,在分层的方面来说,参数校验都是在Controller层完成的,那么Spring MVC中,可直接添加Validate相关的参数校验注解,即可快速完成而无需其它额外的配置,但是如果想在Service层的接口中添加参数校验,则需要额外的配置,否则,注解添加后是无效的。实现我们了解到参数校验是基于Validator来做的,首先需要添加hibernate-validator和validation-api依赖,由于spring-boot-star
2022-01-20 16:12:33
215
原创 SpringBoot静态资源配置
springboot默认的静态资源配置如下时spring.mvc.static-path-pattern=/**默认配置情况下,比如说要访问common.js资源,那么访问路径为http://localhost:8080/js/common.js
2022-01-20 16:12:15
517
原创 单元测试ContextLoader.getCurrentWebApplicationContext();返回null
背景单元测试时,一开始时这样写的@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath*:/applicationContext.xml")public class BaseTest {}但是使用ContextLoader.getCurrentWebApplicationContext()返回的确是null经过研究Write Junit tests for Spri
2021-12-29 17:39:08
2702
转载 Java静态变量存储在内存中的什么位置?
静态成员变量存储在堆的永久生成区域中。这是因为static不属于对象而是属于类,所以它被认为是类定义的一部分。如果静态变量是基元类型,它们将存储在permGen中。如果静态变量是一个引用变量,例如static Person obj=new Person(),那么reference变量obj将被存储在permGen中,新创建的objected将被放置在年轻一代中。...
2021-12-26 23:48:40
10761
2
原创 线程池+ThreadLocal注意的地方
我们再线程池中使用ThreadLocal时,一定要区分于多线程使用ThreadLocal这种情况。因为使用线程池时候,线程是有可能被复用的。而线程对象是通过ThreadLocalMap保存了ThreadLocal以及Value。如果不显示的调用ThreadLocal的remove方法,当线程池中的线程被复用时,调用ThreadLocal的get方法,会取出来这个线程上一次调用ThreadLocal的set方法放进去的值。在线程池中使用ThreadLocal,你必须要知道这一点 - 知乎而使用多线程则
2021-12-25 20:34:17
767
转载 CompletionService和ExecutorCompletionService详解
CompletionService接口定义了一组任务管理接口:submit() - 提交任务 take() - 获取任务结果 poll() - 获取任务结果ExecutorCompletionService类是CompletionService接口的实现ExecutorCompletionService内部管理者一个已完成任务的阻塞队列 ExecutorCompletionService引用了一个Executor, 用来执行任务 submit()方法最终会委托给内部的executor去执行任务
2021-12-16 14:08:32
975
转载 聊聊redis分布式锁的8大坑
前言在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中。但不是说用了redis分布式锁,就可以高枕无忧了,如果没有用好或者用对,也会引来一些意想不到的问题。今天我们就一起聊聊redis分布式锁的一些坑,给有需要的朋友一个参考。1 非原子操作使用redis的分布式锁,我们首先想到的可能是setNx命令。if(jedis.setnx(lockKey,val)==1){jedis.expire(...
2021-10-13 17:57:11
239
原创 Java Bigdecimal 保留两位小数并展示千分位符
//保留两位小数并展示千分位符 DecimalFormat df1 = new DecimalFormat("##,##0.00"); System.out.println(df1.format(0.2));// 0.20 System.out.println(df1.format(0.235));// 0.24 System.out.println(df1.format(0.2351));// 0.24 Sy...
2021-09-22 21:34:03
3604
转载 Java实现生产消费者模型
1. 使用BlockingQueueJava内置了许多BlockingQueue的实现,例如ArrayBlockingQueue,LinkedBlockingQueue等。我们可以通过这些内置的阻塞队列来实现生产者消费者模型。下面是producer的实现:public class Producer implements Runnable { private String name; private BlockingQueue<String> queue;
2021-08-05 16:27:11
471
转载 JAVA多线程中join()方法的详细分析
结论:a线程中调用t1.join(),a就会被挂起,但是并不影响其它正在运行的线程虽然关于讨论线程join()方法的博客已经非常极其特别多了,但是前几天我有一个困惑却没有能够得到详细解释,就是当系统中正在运行多个线程时,join()到底是暂停了哪些线程,大部分博客给的例子看起来都像是t.join()方法会使所有线程都暂停并等待t的执行完毕。当然,这也是因为我对多线程中的各种方法和同步的概念都理解的不是很透彻。通过看别人的分析和自己的实践之后终于想明白了,详细解释一下希望能帮助到和我有相同困惑的同学.
2021-07-22 11:18:02
489
转载 为什么Java中int型数据取值范围是[-2^31,2^31-1]
1、为什么Java中int型数据取值范围是[-2^31,2^31-1],多么神奇的问题,网上找了很多,找不到点子上,自己瞎总结一下子。 1.1、int是Java中的8种基本类型之一,一个int值占4个字节byte,一个字节是8位bit(即8个二进制位),所以int型占32位。其中第一位是标志位,标志位为0表示正数,标志位为1表示负数,剩余的31位是用来表示数字部分的。 1.2、在计算机中,数值一律用补码来表示和存储,原因在于,使用补码,可以将符号位和数值域统一处理。同时,加法和减法也可以统一处理
2021-07-21 15:56:32
737
转载 Java并发包之CountDownLatch用法
转载https://www.cnblogs.com/lewisat/p/11057901.htmlCountDownLatch计数器闭锁是一个能阻塞主线程,让其他线程满足特定条件下主线程再继续执行的线程同步工具。Latch闭锁的意思,是一种同步的工具类。类似于一扇门:在闭锁到达结束状态之前,这扇门一直是关闭着的,不允许任何线程通过,当到达结束状态时,这扇门会打开并允许所有的线程通过。且当门打开了,就永远保持打开状态。CountDowmLatch是一种灵活的闭锁实现,包含一个计数器,该计算
2021-06-30 15:16:55
651
原创 selenium-java控制当前已经打开的 chrome浏览器窗口
1.首先来到安装chrome浏览器的文件夹下,例:C:\Program Files (x86)\Google\Chrome\Application2.
2021-06-18 16:50:39
2067
原创 算法题汇总
冒泡排序 public static void quickSort(int[] a, int low, int high) { if (low < high) { int partition = partition(a, low, high); quickSort(a, low, partition - 1); quickSort(a, partition+1, high); } }
2021-06-16 14:33:44
109
原创 IDEA debug多线程调试
public static void main(String[] args) throws InterruptedException { new Thread() { // 断点0 @Override public void run() { System.out.println("1"); // 断点1 try { Thread.s...
2021-05-26 17:02:24
546
转载 Linux查看网络命令
查看系统当前tcpip连接的状态netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'查看系统的设置keepalivesysctl -a |grep keepalive
2021-05-11 14:46:48
300
转载 [转]servlet调用输出流的flush方法详细解释
典型代码如下:OutputStream os = response.getOutputStream();os.write("Hello world !".getBytes());os.flush();os.close();大部分人都知道flush会把缓冲区的内容输出到前端。其实,servlet容器对会flush作了一些特殊的处理。这就跟http协议说起,一般http通信时会使用Content-Length头信息来表示服务器发送的文档内容长度,这是因为我们已经提前知道了文档内容的长度,但有时
2021-05-10 11:44:40
2101
转载 [转]linux查看tomcat日志(grep 根据时间段进行搜索)
测试过程中,经常会出现一闪而过的错误信息提示,没来得及截图, 要想复现,有些许困难。留给开发去定位问题的,只能是提供当时错误信息提示的大概时间, 如2020-07-20 13:00 -13:10 这个时间段,去后台找日志。以下是2种查看指定时间段日志的命令,比较常用。日志文件如下-仅供测试:日志文本要求:查询2020-07-21 11:58:00~ 12:05:50 这个时间段的日志方法一 :使用grep命令命令如下:grep -E '2020-07-...
2021-04-24 20:10:10
1405
转载 [转]OKhttp 302 死循环
本文来自转载https://blog.youkuaiyun.com/qq_22706515/article/details/78666611今天同事发给我这张图这是因为okhttp中重定向次数超过21次以后就会报错。访问一个接口的时候为什么会重定向,我用finder抓包发现一切正常,是不是因为cookie,于是我把浏览器cookie一关。然后浏览器也不行了。心想那简单,给okhttp加上cookie就行了。但是新的问题就出现了。如下:1.第一次打开100%出错2.退出app,...
2021-04-20 10:25:41
726
转载 Linux curl命令
以下代码可以作为测试接收请求的程序直接复制使用:from flask import Flask, request app = Flask(__name__) @app.route('/service', methods=['POST'])def post_route(): if request.method == 'POST': headers = request.headers data = request.get_json() pr
2021-04-09 17:34:25
430
转载 [转]java.io.IOException 断开的管道 解决方法 ClientAbortException: java.io.IOException: Broken pipe
今天公司技术支持的童鞋报告一个客户的服务不工作了,紧急求助,于是远程登陆上服务器排查问题。 查看采集数据的tomcat日志,习惯性的先翻到日志的最后去查看有没有异常的打印,果然发现了好几种异常信息,但是最多还是这个:24-Nov-2016 09:54:21.116 SEVERE [http-nio-8081-Acceptor-0] org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed jav...
2021-04-02 21:11:25
5479
原创 如何获取这种yyyy-MM-dd‘T‘HH:mm:ss.SSS+07:00格式的时间
+07:00表示与标准时间的偏移量 /** * 获取泰国时间 * 格式:1998-07-16T19:20:30.450+07:00 * * @return */ public static String getBangkokTime() { Instant instant = Instant.now(); OffsetDateTime time = instant.atOffset(ZoneOffset.o
2021-01-19 10:14:19
5740
原创 IDEA DATAGrip如何显示或隐藏某些列
按照如下路径打开Structure,弹出表结构列表然后选中某列,右键单击,选择hidecolumn
2021-01-12 14:48:43
7160
2
原创 从Spring Boot 2.1.0版本不再打印RequestMappingHandlerMapping信息
Spring Boot 2.1 之后的版本 使用以上配置,则无法打印出来RequestMapping信息,从源码:org.springframework.web.servlet.handler.AbstractHandlerMethodMapping#detectHandlerMethods这个方法里可以看到这些信息的日志级别是TRACE解决方案有两种:1.在application配置文件终添加下面两个中的任意一个配置,参考这里logging.level.web=TRACElogging
2021-01-07 21:26:46
1276
原创 MySql 取一天的开始时间和结束时间
-- 取一天的开始时间SELECT str_to_date(DATE_FORMAT(NOW(),'%Y-%m-%d'),'%Y-%m-%d %H:%i:%s'); -- 取第二天的开始时间select DATE_ADD(str_to_date(DATE_FORMAT(NOW(),'%Y-%m-%d'),'%Y-%m-%d %H:%i:%s'),INTERVAL 1 DAY) -- 取一天的结束时间select DATE_ADD(DATE_ADD(str_to_date(DATE_FORMA.
2021-01-07 11:30:25
935
Outlook解决关闭退出的插件ReliefJetQuicksOutlook以及配置教程
2018-03-30
JDIC(JDesktop Integration Components)
2017-10-29
Centos7下Maven下载代理设置
2017-07-07
HttpServletResponse的包装类是如何获取流的
2021-01-22
当一个方法只在父类中定义时,为什么调用该方法时会使用父类中的属性
2019-12-30
当order by 字段出现在where条件中时,才会利用索引而无需排序操作
2019-06-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人