
java工具
文章平均质量分 56
java工具
伏加特遇上西柚
犹如烈焰般的伏特加和温柔酸甜的西柚碰撞在一起,将是一种美好的相遇。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Nginx的location匹配规则
location @fallback { # 命名location,仅内部调用。原创 2025-07-20 14:00:37 · 1039 阅读 · 0 评论 -
Communications link failure异常分析解决
是一个常见的 MySQL 数据库连接异常,表示 JDBC 客户端与 MySQL 服务器之间的通信链路失败。异常,确保应用程序与 MySQL 数据库的稳定通信。通过以上方法,可以有效解决。原创 2025-02-15 19:44:42 · 1210 阅读 · 0 评论 -
java 将 System.out 输出到 slf4j中
【代码】java 将 System.out 输出到 slf4j中。原创 2024-11-28 16:16:29 · 278 阅读 · 0 评论 -
log4j2实际项目中使用
添加log4j2.component.properties配置文件。原创 2024-10-13 19:53:37 · 847 阅读 · 0 评论 -
ideal一键部署SpringBoot项目jar包到服务器
我们在开发环境部署项目一般通过ideal将项目打包成jar包,然后连接linux服务器,将jar手动上传到服务中,重启服务。每次总是循环这一系列的操作,这都是一些固定的流水线操作,对于流水线型的操作最适合交给程序去做,我们只需要把那些个必要变量(路径/端口)抽离出来变成外部配置文件,这样我们就完全可以实现自定义流水线操作。原创 2023-11-07 17:02:28 · 2811 阅读 · 0 评论 -
使用arthas出现UnsupportedOperationException: class redefinition failed: attempted to change the scheam
我一问开发组长,果然在测试环境上开启了Skyworking,于是关闭Skyworking,再次使用trace追踪controller方法,不再出现异常。由于才接收项目,我也不知道到它是被什么修改了,一脸茫然。于是网上找出现这个异常信息,通过arthas的jad命令反编译代码发现,确实被修改了。经过一顿操作,发现别人也出现过和我一样的问题,是因为。原创 2023-10-26 15:19:35 · 3201 阅读 · 0 评论 -
arthas使用介绍
一、Attach 黏附一个进程1.1 准备代码1.2 启动Demo1.3 启动arthas1.4 通过浏览器连接arthas二、常用命令2.1 dashboard仪表盘2.2 cls 清屏2.3 thread 线程2.4 jad 反编译类2.5 watch 监视2.6 退出arthas三、基础命令3.1 help3.2 cat3.3 grep3.4 pwd3.6 reset3.8 quit3.9 stop四、JVM相关命令详解Arthas教程 - 命令篇 (二)Arthas使用教程(8大分类)转载 2023-10-23 20:13:36 · 696 阅读 · 0 评论 -
ideal远程Debug部署在服务器上的服务详解
在开发的时候我们通常在本地代码上debug程序,但是服务部署到了开发环境服务器上,我们也想调试远程服务,那么怎么样才能调试远程服务像调试本地代码一样方便呢?ideal支持远程调试代码,只需要简单的配置即可。原创 2023-10-13 16:52:58 · 1319 阅读 · 0 评论 -
Java异常处理和最佳实践(含案例分析)
最近在代码CR的时候发现一些值得注意的问题,特别是在对Java异常处理的时候,比如有的同学对每个方法都进行 try-catch,在进行 IO 操作时忘记在 finally 块中关闭连接资源等等问题。回想自己对 java 的异常处理也不是特别清楚,看了一些异常处理的规范,并没有进行系统的学习,所以为了对 Java 异常处理机制有更深入的了解,我查阅了一些资料将自己的学习内容记录下来,希望对有同样困惑的同学提供一些帮助。转载 2023-07-22 14:13:01 · 746 阅读 · 0 评论 -
@Retryable(spring的重试机制)
在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。转载 2023-07-17 09:57:40 · 1085 阅读 · 0 评论 -
Redis实现全局唯一Id
id的规律性太明显受单表数据量的限制场景分析:如果我们的id具有太明显的规则,用户或者说商业对手很容易猜测出来我们的一些敏感信息,比如商城在一天时间内,卖出了多少单,这明显不合适。场景分析二:随着我们商城规模越来越大,mysql的单表的容量不宜超过500W,数据量过大之后,我们要进行拆库拆表,但拆分表了之后,他们从逻辑上讲他们是同一张表,所以他们的id是不能一样的, 于是乎我们需要保证id的唯一性。UUIDRedis自增snowflake算法数据库自增每天一个key,方便统计订单量。原创 2023-05-21 23:35:49 · 1672 阅读 · 0 评论 -
IDEA插件之Mybatis log插件安装及使用
我们在idea控制台看见的sql日志通常是这样的,实际开发调试中我们想把完的sql复制出来,到数据库中执行分析数据情况。但是如果我们的sql有动态传参控制台输出的sq入参会用“?”代替入参,不能直接使用。原创 2023-02-15 10:17:54 · 26234 阅读 · 19 评论 -
加密算法---BCryptPasswordEncoder的使用及原理
spring security中的BCryptPasswordEncoder方法采用SHA-256 +随机盐+密钥对密码进行加密。SHA系列是Hash算法,不是加密算法,使用加密算法意味着可以解密(这个与编码/解码一样),但是采用Hash处理,其过程是不可逆的。1)加密(encode):注册用户时,使用SHA-256+随机盐+密钥把用户输入的密码进行hash处理,得到密码的hash值,然后将其存入数据库中。原创 2023-02-08 21:46:22 · 11279 阅读 · 1 评论 -
nginx优秀博客地址
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化…想要的这都有原创 2023-02-01 14:30:02 · 127 阅读 · 0 评论 -
Syntax Error: TypeError: Cannot set property ‘parent‘ of undefined异常解决
根据报错提示找到/src/components/NumberInfo/NumberInfo.vue文件把 @import “index”;在执行npm run serve后,前端项目报错。原创 2022-08-12 10:41:54 · 13825 阅读 · 20 评论 -
json序列化时案例总结
@JsonSerialize注解,主要应用于数据转换,该注解作用在该属性的getter()方法上。场景: id为Long类型时,数字长度超过19位传到前端就变了值 。精度丢失了。解决办法:将Long类型转换成String类型,解决精度丢失。注意:被转换的字段必须是包装类类型,否则会转换失败。案例二场景:需要保留金额两位小数,四舍五入解决办法:定义方法CustomDecimalSerialize2、 @JsonProperty 用在属性上面,在序列化和反序列化时都将该属性识别为xxx@Date原创 2022-06-30 10:14:15 · 1295 阅读 · 0 评论 -
java汉字转拼音以及五笔码工具
java汉字转换成拼音工具原创 2022-06-14 09:36:10 · 4490 阅读 · 1 评论 -
MybatisPlus更新时会自动忽略传值为NULL的字段
三种方案解决MybatisPlus更新时会自动忽略传值为NULL的字段一、背景二、解决方案2.1 使用`@TableField(updateStrategy = FieldStrategy.IGNORED)`注解添加在字段上在枚举`FieldStrategy`中有五个属性如下`updateStrategy`说明2.2 在需要修改的实体类字段上加上`@TableField(fill = FieldFill.INSERT_UPDATE)`注解`FieldFil`l枚举说明`fill`策略说明一、背景最近在项原创 2022-05-06 16:05:57 · 14745 阅读 · 6 评论 -
ObjectMapper使用详情
可以使用ObjectMapper进行json和对象间的转换Jackson ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)是使用Jackson解析JSON最简单的方法。Jackson ObjectMapper可以从字符串、流或文件解析JSON,并创建Java对象或对象图来表示已解析的JSON将JSON解析为Java对象也称为从JSON反序列化Java对象Jackson ObjectMapper也可以从Java对象创建JSON. 从原创 2022-05-05 10:55:48 · 782 阅读 · 0 评论 -
如何获取请求端真实IP和远程主机IP详解
如何获取请求端真实IP和远程主机IP详解需求背景一、Remote_Addr情况 一:情况二:java中获取Remote_Addr的api二、X-Forwarded-Forjava中获取X-Forwarded-For的api为需求背景HTTP请求头中的Remote_Addr,X-Forwarded-For,X-Real-IP我们在项目中有时需要获取请求端真实的IP,有时需要获取代理服务器的IP。下面详细介绍如何获取。一、Remote_AddrRemote_Addr表示发出请求的远程主机IP。rem原创 2022-04-26 13:57:58 · 11620 阅读 · 0 评论 -
mybatisCodeHelperPro安装详解(ideal2021版本)
文章目录一、资源下载二、卸载旧版本插件三、将下载下来的mybatisCodeHelperPro放入到ideal安装路径内的plugins中四、启动ideal激活插件4.1 打开记录界面4.2 激活插件一、资源下载二、卸载旧版本插件三、将下载下来的mybatisCodeHelperPro放入到ideal安装路径内的plugins中四、启动ideal激活插件4.1 打开记录界面Tools—MybatisCodeHelper—Activation4.2 激活插件五、验证功能...原创 2022-03-26 17:35:19 · 12813 阅读 · 42 评论 -
hutool工具-----JSON工具-JSONUtil
JSONUtil介绍JSONUtil是针对JSONObject和JSONArray的静态快捷方法集合,在之前的章节我们已经介绍了一些工具方法,在本章节我们将做一些补充。使用1、JSON字符串创建JSONUtil.toJsonStr可以将任意对象(Bean、Map、集合等)直接转换为JSON字符串。 如果对象是有序的Map等对象,则转换后的JSON字符串也是有序的。 /** * 转换为JSON字符串 * <p> * 被转为JSON的对象 *原创 2022-03-11 16:44:22 · 34171 阅读 · 0 评论 -
java后端接收前端传入的复杂json格式处理?(二)
1、前端传入的json数据格式{ "noumenonSoid": "123", "individualName": "CT平扫", "individualSoid":"2029", "status": "145", "listKnwIndividualSoltVo": [ { "slotSoid": "1", "derailCodingSystemSoid": "1",原创 2021-03-18 10:30:44 · 1233 阅读 · 0 评论 -
java后端接收List集合数据(三)
1、前端入参格式:http://127.0.0.1:9067/knwIndividual/add?t=1,3,22、后端接收数据格式:@GetMapping("add") public ActionResult add1(@RequestParam List<Integer> t) { System.out.println("t = " + t);//t = [1, 3, 2] // TODO Auto-generated method stub return null;原创 2021-03-18 11:14:37 · 4946 阅读 · 1 评论 -
Object映射成实体类(一)
1、请求参数格式:[ { "Property":{ "dataSourceSoid":"1", "codingSystemSoid":"1", "isPrimaryKey":"1", "isForeignKey":"1", "isNull":"1", "isEncrpytion":"1", "isPrivate":"1",原创 2021-03-18 10:12:34 · 2129 阅读 · 0 评论 -
MybatisInterceptor使用详解
MybatisInterceptor对需要执行的sql前进行数据处理,例如:新增时自动添加创建人,创建时间;更新时自动添加更新人,更新时间。拦截器原理介绍参考下述大佬博客:Mybatis拦截器介绍mybatis 源码分析(五)Interceptor 详解以下对拦截器debug,查看使用过程。新增操作...原创 2022-02-24 17:25:25 · 2788 阅读 · 5 评论 -
对象属性拷贝常用的四种方式(总结出最高效率)
当get/set太繁琐时;当BeanUtils无法拷贝集合时;当。。。可能,你需要好好看看这篇文章,文末附完整示例代码。在做业务的时候,为了隔离变化,我们会将DAO查询出来的DO和对前端提供的DTO隔离开来。大概90%的时候,它们的结构都是类似的;但是我们很不喜欢写很多冗长的==b.setF1(a.getF1())==这样的代码,于是我们需要简化对象拷贝方式。一、背景1.1 对象拷贝概念Java中,数据类型分为值类型(基本数据类型)和引用类型,值类型包括int、double、byte、boolean原创 2022-02-10 11:10:30 · 14449 阅读 · 0 评论 -
easyexcel使用详解(来自阿里巴巴员工的总结,很详细)
此篇博客是记录自己学习easyexcel中收集到的资料。建议下载github地址,直接看使用案列。1、easyexcelgithub地址2、easyexcel使用文档在单元测试模块:read,web,write三个目录中分有详细的使用。其中web中表格上传,下载。文件上传UploadDataListenerpackage com.alibaba.easyexcel.test.demo.web;import java.util.List;import com.alibaba.excel原创 2022-02-09 09:07:31 · 6955 阅读 · 0 评论 -
ideal配置SVN及其使用
1、参考连接原创 2022-01-05 10:28:18 · 630 阅读 · 0 评论 -
还在用swagger 你out了,knife4j在你生成接口文档的道路助你一臂之力
(1)简介knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!gitee地址官方文档效果演示官方文档很全,建议参考官方出品(2)核心功能该UI增强包主要包括两大核心功能:文档说明 和 在线调试文档说明:根据Swagger的规范说明,详细列出接口文档的说明,包括接口地址、类型、请求示例、请求参数、响应示例、响应参数、响应码等信息,使用swagger原创 2021-11-14 17:45:15 · 4301 阅读 · 0 评论 -
@DateTimeFormat和@JsonFormat使用
一:添加依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <jackson.version>2.11.3</jackson.version> </depende原创 2021-10-09 11:17:46 · 4552 阅读 · 0 评论 -
java判断一个字符串是否为数字型(整数、小数、负数)
1、采用正则表达式的方式来判断一个字符串是否为数字,这种方式判断面比较全面,可以判断正负、整数小数 String str1="12354哈哈"; String str2="12354"; String str3="12354.6"; String str4="-12354.6"; Boolean strResult1 = str1.matches("-?[0-9]+.?[0-9]*"); //false Boolean strResult2 = str2.matches("-?[0-9原创 2021-03-12 15:16:03 · 3228 阅读 · 3 评论 -
对象之间互相拷贝效率最高工具(mapstruct)
1、干掉 BeanUtils!试试这款 Bean 自动映射工具,真心强大2、mapstruct最佳实践 3、springboot整合mapstruct4、SpringBoot 2.4.1整合 MapStruct 详细教程原创 2021-09-10 17:40:32 · 1688 阅读 · 0 评论 -
SpringSchedule定时功能
1.1.简介SpringBoot中已经默认对Spring的Schedule实现了自动配置,使用时只需要简单注解和部分属性设置即可。1.2.入门案例使用Spring的 initializr来搭建项目:选择依赖1.2.2.开启定时任务要开启定时任务功能,只需要在启动类上加载一个@EnableScheduling注解即可:package com.springshedule.demo;import org.springframework.boot.SpringApplication;imp原创 2021-07-18 16:31:34 · 1078 阅读 · 1 评论 -
IDEA 代码重构
三种简化代码(提高可读性)的方式extractchangerename一、extract(提取)1、method(ctrl+alt+m) 抽取方法2、constants(ctrl+alt+c) 抽取常量3、fields(ctrl+alt+f) 抽取字段4、parameters(ctrl+alt+p) 抽取参数5、variables(ctrl+alt+v)抽取变量6、change signature (ctrl+n)改变构造方法入参二、重命名shift+f6原创 2021-07-11 12:38:38 · 719 阅读 · 0 评论 -
ideal中debug高级进阶总结
1、避免操作资源程序执行到某一处时,不想让程序继续执行下去。2、常用图标解释3、stream调试原创 2021-07-10 22:42:40 · 230 阅读 · 0 评论 -
Ideal工具使用
一、IDEAL页面展示1、view --Appearance-Toolbar2、View–Appearance-Tool Window Bars3、编辑区字体变大或变小4、鼠标悬浮在代码上有提示5、自动导包和优化多余的包6、同一个包下的类,超过指定个数的时候,导包合并为*7、显示行号,方法和方法间的分割符8、忽略大小写,进行提示9、多个类不隐藏,多行提示10、修改类头的文档注释信息IDEA类和方法注释模板设置(非常详细)11、设置编码格式12、自动编译1原创 2021-07-10 18:06:52 · 1099 阅读 · 0 评论 -
java中树形菜单获取(map方式)
一:返回的树形对象@Datapublic class CommonWordsTreeVo implements Serializable { @ApiModelProperty(value = "上级常用语树形分类标识") @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class) private Long surperCommonWordsTreeSoid;原创 2021-07-05 19:15:22 · 524 阅读 · 0 评论 -
获取现在时间
SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd"); String format = time.format(new Date());//2021-07-05原创 2021-07-05 17:07:48 · 93 阅读 · 0 评论 -
java生成树形菜单
java生成树形菜单1.JAVA递归生成树形菜单2.java树形菜单实现3.Java递归构建树形数据结构实现多级树形菜单展示原创 2021-07-04 21:48:49 · 284 阅读 · 0 评论