问题整理
Q z1997
这个作者很懒,什么都没留下…
展开
-
liunx 查看公网ip
liunx 查看公网ip。原创 2022-10-27 21:28:34 · 351 阅读 · 0 评论 -
MyBatisPuls 多数据源操作数据源偶尔报错
昨天同时在开发一个项目的时候使用了 MybatisPlus 的多数据源, 但是在登陆的时候偶然就会报错 如下 说使用错库了但是刷新几次有好了 我当时表示十分震惊 debug 了 一个多小时也没找到错误 正当我快放弃的时候 我想起了我以前排除过的一个问题 mybatis的 幽灵分页 (错误的是 分页插件 导致的ThreadLocal 问题)Mybatis Plus 的版本是虽然一个多小时没有找到问题的原因 看到了mybatis plus 在切换数据源的时候使用了 ThreadLocal 直原创 2022-08-04 20:44:21 · 2317 阅读 · 12 评论 -
数据库单字段存储多个标签(位移操作)
在上周的开发中看到了这样的一个问题一个员工有多个资质如资质1=监理,2=安全员,4=项目经理,8=技术员,16=特种作业人员,32=劳务人员李白1=监理4=项目经理一般我们的解决方式有以下两种方案1没有使用的原因是因为这个资质可能会频繁的增加修改就要频繁的改表结构了数据量一大改表结构就不是一个好的操作方法2这里没有使用的原因就是这个本事就关联表过多了要不就要2次请求数据库。............原创 2022-07-31 20:43:59 · 1311 阅读 · 0 评论 -
乐观锁批量跟新 纯SQL
mysql 数据库 乐观锁批量更新原创 2022-07-29 20:14:30 · 951 阅读 · 0 评论 -
类的加载概述
我们编写的“.java”扩展名的源代码文件中存储着要执行的程序逻辑,这些文件需要经过java编译器编译成“.class”文件,".class"文件中存放着编译后虚拟机指令的二进制信息。当需要用到某个类时,虚拟机将会加载它,并在内存中创建对应的class对象,这个过程称之为类的加载。一个类的生命周期从类被加载、连接和初始化开始,只有在虚拟机内存中,我们的java程序才可以使用它。整个过程如下图所示: 当Java程序中需要使用到某个类时,虚拟机会保证这个类已经被加载、连接和初始化。而连接又包含验证、原创 2022-06-05 17:34:56 · 171 阅读 · 0 评论 -
简单实现数据库链接池
简单实现的数据库连接池原创 2022-06-04 22:37:32 · 98 阅读 · 0 评论 -
Java8 Stream流 Java实体Bean 指定字段去重
方式1public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Map<Object,Boolean> seen = new ConcurrentHashMap<>(); return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE原创 2022-05-30 17:45:29 · 1032 阅读 · 0 评论 -
Maven统一修改版本号插件
<!-- 统一修改版本号插件 用法:mvn versions:set -DnewVersion=0.1.2-SNAPSHOT --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <configuration> <generateBackupPoms>..原创 2022-05-30 16:51:41 · 647 阅读 · 0 评论 -
double-checked locking双重验锁 多线程顺序新问题
public final class Singleton { private Singleton() { } private static Singleton INSTANCE = null; public static Singleton getInstance() { if(INSTANCE == null) { // t2 // 首次访问会同步,而之后的使用没有 synchronized synchronized(Singleton.class) { if (INSTANCE == n原创 2022-05-27 14:28:20 · 76 阅读 · 0 评论 -
如何解决java linux文件中文乱码(Liunx缺失中文字体)问题
java linux文件中文乱码的解决办法1、下载jdk1.8的sun源码;2、将Font的创建从物理字体改为逻辑字体;3、重启服务即可。如何解决java linux文件中文乱码问题?Linux环境下Java中文乱码解决方案相信很多朋友遇到过Java的乱码问题,最近我也在解决一个“使用文本生成图片过程中中文以及特殊字符乱码”的问题;花了我大量时间,Debug了sun.font、sun.awt下面的各种源码,终于搞懂了其机制,解决了目前次问题;现在把问题解决过程给写下来,做个记录,以免以后再次遇到原创 2022-05-11 15:56:12 · 3719 阅读 · 0 评论 -
JAVA与JavaScript递增ID压缩与解压
上周代码分享中的一个代码,因业务需要要将一组数据库自增的id, 思路就是将id排序,取最小的为基数, 取剩下所有数与基数的差值 新建一个数组将差值的下标改为1 其他默认为0 将这个数组 拆分4个一组 转换为16进制 .压缩效果如下:压缩后 = 10zd3e9fffffffffffffffffffffffcID个数 = 104解压后 = [10,11,13,16,17,18,19,20,22,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,4原创 2022-05-05 09:40:19 · 548 阅读 · 0 评论 -
js 赋值 react input的输入框
js 赋值 react input的输入框 javascript:(function () { setNativeValue = function (qs, value) { const element = document.querySelector(qs); const valueSetter = Object.getOwnPropertyDescriptor(element, 'value').set; c原创 2022-05-05 09:40:59 · 1291 阅读 · 0 评论 -
打开微信的X5调试
微信: debugmm.qq.com/?forcex5=truehttps://x5.tencent.com/tbs/guide/debug/faq.html原创 2022-04-23 23:17:16 · 1574 阅读 · 0 评论 -
telnet 测试IP和端口命令
语法:telnet IP PORT可以联通不可以联通原创 2022-04-23 21:42:09 · 222894 阅读 · 0 评论 -
AES linux 加密失败的原因
上周在工作中遇到了一个AES加密的问题, 使用我自己封装的一个AES 加密的工具类 在本地Windows环境下运行一切正常 , 但是发布到liunx上就出现了异常, 异常信息如下, 原因就是因为系统这个类在不同的系统环境下调用的代码不用 (唉呀 这个好坑啊) 这里整理一下Exception in thread "main" java.lang.RuntimeException: Given final block not properly padded. Such issues can arise if原创 2022-04-04 10:04:29 · 2510 阅读 · 0 评论 -
Spring注入Bean为null
记录一个问题 Spring注入Bean为null原因:项目多人开发一位同事写的controller 是private 的 而我 写一个一个接口加上了 @Transactional(rollbackFor = Exception.class) 注解 事务 使用了 Spring 在创建这个bean 是 代理失败了就从一级缓存中取出Bean 注入了 所以 注入的Bean 都未null这是个奇怪的问题 , 再次强调一下还是要规范开发啊 ! Controller接口 最好不要私有!...原创 2022-04-03 20:58:40 · 1497 阅读 · 0 评论 -
Shell 分析服务器日志命令集锦
整理了一些服务器日志分析命令,大家可以试试!1、查看有多少个IP访问:awk '{print $1}' log_file|sort|uniq|wc -l2、查看某一个页面被访问的次数:grep "/index.php" log_file | wc -l3、查看每一个IP访问了多少个页面:awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file > log.txtsort -n -t ' ' -k 2 log.txt 配合sor原创 2022-03-23 12:06:03 · 132 阅读 · 0 评论 -
JAVA POI The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls
[10:11:09:013] [ERROR] - xxx.xxx.security.common.handler.GlobalExceptionHandler.otherExceptionHandler(GlobalExceptionHandler.java:102) - The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbookjava.lang.RuntimeEx原创 2022-03-21 11:24:31 · 678 阅读 · 0 评论 -
JAVA程序读取Mysql 数据库Json字段乱码问题
在上周的开发中遇到了一个申请的问题, 在Java程序读取MySQL 数据库中的数据出现了乱码的情况, 其他字段都正常 就Json字段乱码.最后确认是 Java mysql 驱动的问题. mysql-connector-java.5.1.37之下的版本是有这个问题的. 升级到5.1.40以上就没有这个问题了. <dependency> <groupId>mysql</groupId> <artifact原创 2022-01-02 14:23:46 · 1023 阅读 · 0 评论 -
CSS transform 样式
记录一个样式perspective 为 3D 转换元素定义透视视图 可以理解为实体rotateX: 定义沿着 X 轴的 3D 旋转。transform: perspective(2em) rotateX(10deg);更多参考:transform CSS样式介绍<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</t原创 2021-09-01 18:03:51 · 332 阅读 · 0 评论 -
Java服务性能测试与监控
Java服务性能测试与性能调优前言JVM 和 Tomcat参数对系统的承载能力有一定的影响, 但是主要影响性能的还是我们写的代码与数据库的SQL, 所以代码优化和SQL优化才是我们优化的重点性能测试工具使用 Apache-JMeter-5.0新建线程组新建Http请求添加请求头/cookie配置编辑HTTP请求添加查看结果配置线程组 下图配置相对与 100 * 100 = 10000配置完成运行与结果清除查看结果原创 2021-08-22 17:11:38 · 787 阅读 · 0 评论 -
SpringBoot 内嵌Tomcat 参数调优
SpringBoot(2.2.11.RELEASE) Tomcat# Tomcat线程池参数调节 SpringBoot 版本不同Tomcat的参数名也不同 (具体参考源码) server: tomcat: # 最大连接数 max-connections: 10000 # 等待队列长度,默认100队列也做缓冲池用 accept-count: 100 # 链接超时时间 connection-timeout: 5000ms # 最大线程数原创 2021-08-22 17:03:07 · 465 阅读 · 0 评论 -
JVM参数调优
性能参数调优JVM参数# -Xms 初始堆内存 # -Xmx 最大堆内存 # -Xmn 堆年轻代大小 一般是整个堆内存的 3/8 或 1/2 但这只是一般情况不是标准# -Xss 线程内存大小 最好不要超过1M# -XX:+UseG1GC 设置G1 为垃圾回收器 java -jar -Xms2048m -Xmx3072m -Xmn768m -Xss1m -XX:+UseG1GC java.jar具体调整多少要看 测试结果 不是越大越好 测试机与测试服务器不要原创 2021-08-22 17:01:48 · 127 阅读 · 0 评论 -
数据库文档生成工具使用方法
数据库文档生成工具使用方法使用工具screw官方文档数据库支持MySQLMariaDBTIDBOracleSqlServerPostgreSQLCache DB(2016)文档生成支持wordhtmlmarkdown我们这里统一使用word文档整合的工具类最好将生成类型和配置添加到test文件夹下。引入依赖 <!-- 必须添加 生成数据库文档--> <dependency>原创 2021-08-22 16:58:56 · 213 阅读 · 0 评论 -
Hibernate Validator基础介绍
Hibernate Validator基础介绍常用注解Constraint详细信息@Null被注释的元素必须为 null@NotNull被注释的元素必须不为 null@AssertTrue被注释的元素必须为 true@AssertFalse被注释的元素必须为 false@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值@Decima原创 2021-08-22 16:57:19 · 187 阅读 · 0 评论 -
Postman导入请求接口
Postman导入请求接口IDEA导出postman接口该方法需要先安装EasyYapi IDEA插件打开postmanPostman导入Swagger接口原创 2021-08-22 16:55:20 · 301 阅读 · 0 评论 -
微信公众号订阅号与服务号的区别
之前一段公司申请公众号, 同事整理的订阅号与服务号的区别这里记录一下. 在这里无声的感谢这位前同事 (Max) 哈哈哈另外记录一下微信公众号和微信商户号是多对多的关系原创 2021-08-22 16:46:35 · 123 阅读 · 0 评论 -
压制阿里巴巴代码规范警告
压制阿里巴巴代码规范警告@SuppressWarnings( "AlibabaUndefineMagicConstant")原创 2021-08-11 09:35:36 · 643 阅读 · 0 评论 -
RestTemplate POST 请求url携带参数 无法正常请求
使用 Spring RestTemplate 对接一个奇怪的接口, 这个接口使用 POST 请求但是是url 带的参数 我们在postman上测试是正常的. 但是在代码中使用则出现 签名错误的提示(请求参数问题)postman 请求截图Java代码 url = String.format(url + "?app_id=%s&expire_time=%s&callback_data=%s&user_type=%s&sign=%s", APP_ID, ti原创 2021-08-10 17:11:25 · 3019 阅读 · 0 评论 -
Postgres 9.6 Docker安装
创建一个bridge 网路docker network create --subnet=172.19.0.0/24 dockernetworkdocker network ls拉取镜像docker pull postgres:9.6创建文件夹# master:主库数据mkdir -p /data/psql9/master# slave:从库数据mkdir -p /data/psql9/slave# repl:临时使用复制数据mkdir -p /data/psql9/repl# 修原创 2021-07-31 09:40:27 · 886 阅读 · 0 评论 -
Maven Build日志乱码
问题描述:打包日志乱码解决:maven默认环境为jdk,只需要改如下即可:在IDEA中,打开File => Settings => Build, Execution, Deployment => Build Tools => Maven => Runner在VM Options中添加-Dfile.encoding=GBK,切记一定是GBK。即使用UTF-8的话,依然是乱码,这是因为Maven的默认平台编码是GBK,如果你在命令行中输入mvn -versi原创 2021-07-27 17:34:00 · 1368 阅读 · 0 评论 -
微信\支付宝扫码条码区分规则
目前是根据开头前2位进行判断,目前规则是:支付宝:25~30开头的长度为16~24位的数字。 例如:289431869362714645;微信:18位纯数字,以10、11、12、13、14、15开头 。例如:135112298638468293支付宝API接口页面: https://docs.open.alipay.com/api_1/alipay.trade.pay微信开发文档页面:https://pay.weixin.qq.com/wiki/doc/api/micropay_sl.php?原创 2021-07-27 17:24:06 · 2500 阅读 · 0 评论 -
SpringBoot前后端分离404 处理
继承 ErrorController + @ControllerAdvice + @ExceptionHandle 处理一切异常已知@ControllerAdvice + @ExceptionHandle可以处理 除 404 以外的 运行异常,那么,捕获不到的异常就是404了。两个类:NotFoundException@Controllerpublic class NotFoundException implements ErrorController {@Overridepublic St原创 2021-06-27 17:01:43 · 937 阅读 · 0 评论 -
微信公众号和微信小程序获取OPENID的方法
无论是微信小程序还是微信公众号获取OPENID都需要先获取code获取code String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + ticketWxConfig.getCustomAppId() + "&redirect_uri=" + URLEncoder.encode(redirect_uri, UTF_8) + "原创 2021-06-27 16:56:39 · 1969 阅读 · 0 评论 -
SQL 时间区间不可重叠的查询
记录一个需求,:平台新建活动但是活动的区间不可以重复.SQL: SELECT * FROM ticket_activity a WHERE NOT ( a.`start_time` >= #{endTime} OR a.`end_time` <= #{startTime} )原创 2021-06-27 16:48:13 · 634 阅读 · 1 评论 -
Java 字符串生成二维码
pom<!-- https://mvnrepository.com/artifact/com.google.zxing/core --><dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version></dependency>p原创 2021-05-07 16:56:41 · 1396 阅读 · 0 评论 -
Thymeleaf指定@{} BaseUrl 路径
Thymeleaf指定@{} BaseUrl 路径问题:前端请求后端的域名加了一个 路由 前端的一些js 和图片找不到了修改方法:package cn.decentchina.kentucky.api.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.thymeleaf.Temp原创 2021-04-28 13:31:05 · 574 阅读 · 0 评论 -
SPI简介
1、SPI简介SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。SPI 机制在第三方框架中也有所应用,比如 Dubbo 就是通过 SPI 机制加载所有的组件。不过,Dubbo 并未使用 Java 原生的 SPI 机制,而是对其进行了增强,使其能够更好的满足需求。在原创 2021-04-18 16:55:51 · 348 阅读 · 0 评论 -
JAVA List对布尔值进行排序
记录一个对一个集合中的 某一个布尔值进行排序 true 在前 false 在后// 排序responses.sort((o1, o2) -> { if (o1.getThisDefault() ^ o2.getThisDefault()) { return o1.getThisDefault() ? -1 : 1; } else { return 0; }});return responses;...原创 2021-04-18 16:49:23 · 2250 阅读 · 0 评论 -
浏览器中的Network中有请求但是没有到后台
浏览器中的Network中有请求但是没有到后台记录一个奇怪的问题在上周 做一个前后端分离的项目是 前端有请求即 network中有请求记录但是请求没有到后台 前度刷新一下页面 这个请求才能到后天 这里注意一下 这个项目是在本地环境中启动的 所以不存在 cdn 缓存 而且这个请求 的响应里还有一个请求的的当前时间 也就是说每次请求 响应的数据都有所不同 但是还是出现的 这个问题 .最后发现禁用缓存后发现没有了这个问题最终的处理方案是禁用缓存 headers: {‘Cache-Cont原创 2021-03-28 12:53:37 · 1111 阅读 · 0 评论