
工作总结
文章平均质量分 59
bird_tp
不管是菜鸟还是笨鸟,反正先飞总是没错
展开
-
Spring Cache使用Redis自定义缓存key
本篇博客,简单的介绍了sprig cache,spring cache如何使用redis作为缓存,已经自定义缓存key策略,以及通过配置缓存过期时间原创 2022-09-06 19:41:59 · 3285 阅读 · 0 评论 -
K8S容器项目容器内存配置规则
一、整体概览整体原则:容器最小内存和容器最大内存设置为一致更多参数里:最大堆内存和最小堆内存设置为一致二、细节解释在 Kubernetes 中,像 CPU 这样的资源被称作“可压缩资源”(compressible resources)。它的典型特点是,当可压缩资源不足时,Pod 只会“饥饿”,但不会退出。而像内存这样的资源,则被称作“不可压缩资源(incompressible resources)。当不可压缩资源不足时,Pod 就会因为 OOM(Out-Of-Memory)被内核杀掉。原创 2022-05-06 15:47:50 · 3769 阅读 · 0 评论 -
Log4j自定义Appender输出日志内容
一、Log4j知识了解在自定义Appende之前,我们先来简单了解下Log4j1、Log4j是什么Log4j是由Apache提供的日志操作包,用于帮助用户处理日志信息。2、log4j的作用log4j提供了方法使我们能将日志信息分级存储。其次,log4j提供了日志不同的存储方式,我们可以将日志发送到控制台,或者文件,或者数据库中等等。3、Log4j三大组件Logger:日志写出器,负责供客户端代码调用,用于输入日志信息。Log4j 允许开发人员定义多个Logger,每个Logger原创 2022-02-11 17:05:43 · 4682 阅读 · 0 评论 -
xxl-job简单使用
本篇博客仅作为自己在使用xxl-job过程中的查看的一片文章,仅做记录使用XXL-JOB快速入门 - 简书原创 2021-12-29 16:09:36 · 363 阅读 · 0 评论 -
注解+切面式的分布式锁
一、案例需求 在一个SpringBoot项目,其中定时任务和web端代码耦合在一起,并部署在多个服务器节点上,但这样会存在一个问题,每个节点都会触发一次定时任务,这显然重复执行了。为了达到唯一控制效果,引入了分布式锁的功能。但是有个缺点是每写一个定时任务都得写一份与业务无关的分布式锁代码,这样造成大量的冗余代码。所以想着通过注解+切面的方式来实现代码的精简。二、代码1.注解@Target(ElementType.METHOD)@Retention(RetentionPolicy.R..原创 2021-12-27 10:20:58 · 1139 阅读 · 0 评论 -
git解决本地分支合并test分支冲突的问题
一、博客背景本篇博客仅作为工作记录使用,记录自己解决问题的过程,同样,本篇博客中介绍的方法不适合所有的人解决冲突。二、分支介绍master分支test分支dev-wuzhu分支(自己开发的分支)dev-xiali分支(同事开发的分支)分支使用前提:我现在所在的公司的发布流程是,先将自己的分支合并到test上,如果test分支发布且测试没问题后,合并到master分支发布生产环境,且不允许将test分支往自己的分支上合并,因为这样会存在将在test分支上,尚未测试通过的分支合并到本原创 2021-07-16 17:50:15 · 2184 阅读 · 5 评论 -
利用hutool解析excel内容转换为实体,实体属性为空
一、博客前提工作中有遇到一个需求,客户提供需要插入数据库的原始数据的excel表格,我去解析表格,将数据插入数据库。当时立马就想到了用hutool的工具类,直接将excel表格nei'r原创 2021-06-08 20:53:46 · 14666 阅读 · 9 评论 -
spring boot项目使用threadlocal存储用户信息实现数据权限控制
一、博客背景 项目是前后端分离的spring boot项目,前端将标识用户信息的code存储在cookie中,当实现从cookie中获取到code值后,再查询数据库获取数据用户信息后,如何将用户信息一层一层的往下传递?有人可能将用户信息存储到HttpServletRequest请求中,后续需要用到用户信息的时候,再从HttpServletRequest中获取。如果在dao层需要用户信息,还需要将HttpServletRequest一层一层传递,或者说在controller中获取到用户信息一层一层传..原创 2021-05-26 17:48:47 · 4242 阅读 · 0 评论 -
spring boot项目使用@ControllerAdvice做全局异常处理
一、博客背景在项目中有遇到一个需求,对于项目中的特殊异常信息信息需要做一个处理,统一返回到前端。二、代码统一异常处理类import com.tp.common.constant.CommonConstant;import com.tp.common.exception.BusinessException;import com.tp.common.exception.TokenException;import com.tp.common.model.Resp;import com.t原创 2021-05-26 10:18:57 · 470 阅读 · 0 评论 -
mysql如何不依赖数据库客户端将一个表中的数据迁移到令一个数据库中
本次操作只需执行两句sql,分比为mysqldump -u root -p mytest(自己替换数据库名)tb_sent(自己替换表名)> D:/yourtabledata.sql(你需要存储的sql地址)mysql -u root -p safe(自己替换需要导入数据的数据库名)< D:/yourtabledata.sql(前面导出的sql文件存储地址)操作细节,请看下面的步骤一、导出数据打开命令行输入以下sql:表格中需要替换的数据库名和表名...原创 2021-02-04 20:23:07 · 208 阅读 · 1 评论 -
java自定义对象集合排序
一、基本对象集合排序import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Random;/** * @Package: PACKAGE_NAME * @ClassName: IntListTest * @Author: tanp * @Description: ${description} * @Date: 2020/9/8 14:42 */p原创 2020-09-08 15:10:36 · 1523 阅读 · 0 评论 -
基于FTP服务器的常用操作工具类
import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPConnectionClosedException;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;import org.apache.log4j.Logger;import org.apache.log4j.spi.原创 2020-09-07 11:08:50 · 364 阅读 · 0 评论 -
spring boot设置端口不生效的问题
一、问题背景 对于这种问题,网上一大堆的解决办法,且都能解决,但是我为啥还要记载呢,因为我按照网上的方法一个一个的试了,发现都不生效,所以本篇博客相当于一个工作问题总结二、问题发现 对的,正如我图中截屏那样,我的eurekaserver竟然没有target包!!!!所以无论我怎样修改,修改端口的配置文件都没有生效,理所当然,端口修改也没有生效,最后网上搜索一番发现,是因为我pom文件中多了一行<packaging>pom</packaging>,所以编译时不...原创 2020-07-23 11:17:03 · 5624 阅读 · 1 评论 -
手写日志框架
话不多少,直接上代码日志实现类import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Date;/*** 日志系统的抽象类,用于记录日志信息。不同级别的日志记录到不同的日志文件中。<br/>* 日志文件的的格式为:logs/yyyy-MM-dd/info、w...原创 2020-06-11 10:07:29 · 1145 阅读 · 0 评论 -
虚拟机网络配置详解
作为一个虚拟机新手,相信很多人跟我一样,对于虚拟机网络的配置很头疼。比如下面两张图,到底有什么区别总的来说,就是第一张图是选择你虚拟机采用什么方式连接网络,第二张图就是设置你选择联网方式的细节(个人理解)下面大家跟着我,一起来学习下在第一张图里,我们可以看到,VMware 提供的网络连接有 5 种,分别是"桥接模式"、"NAT 模式"、"仅主机模式"、"自定义"和"LAN...原创 2019-12-19 10:54:14 · 2714 阅读 · 0 评论 -
sm4算法加密解密
一、基本知识分组加密(英语:Block cipher),又称分块加密或块密码,是一种对称密钥算法。它将明文分成多个等长的模块(block),使用确定的算法和对称密钥对每组分别加密解密。 对称加密、加密算法主要可以分为两种,一个是非对称加密算法,另一个就是对称加密算法。对称加密简单来说就是有一个明文,通过一个密钥加密之后得到一个密文,这个密文可以通过相同的密要解密得出和原来相同的明文二、sm...原创 2020-05-08 09:58:52 · 55026 阅读 · 4 评论 -
java通过ScheduledExecutorService实现定时任务
一、java实现定时任务的方式java完全不引人其他框架,自己实现定时任务的方法常用的大概有两种,JDK自带的Timer以及JDK1.5+ 新增的ScheduledExecutorService;二、Timer方式实现代码如下import java.util.Timer;import java.util.TimerTask;public class TestA {...原创 2020-04-20 16:04:30 · 6016 阅读 · 0 评论 -
Im4java接口调用ImageMagick图片处理服务简单demo学习
一、什么是ImageMagickImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过200种基本格式的图片文件,包括PNG,JPEG,GIF,HEIC,TIFF,DPX,EXR,WebP,Postscript,PDF和SVG等格式。利用ImageMagick,可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、...原创 2020-04-14 16:09:31 · 1438 阅读 · 0 评论 -
mapstruct学习
一、可使用的业务场景相信很多同学在编码过程中会遇到从数据库查询A对象的集合数据,然后遍历A对象集合,然后封装到B数据集合中,然后返回B数据集合给调用者。如:List<A> listA = getListA(); //调用数据库查询数据for(A a :listA){ B b = new B(); b.setName(a.getName()...原创 2020-03-31 15:33:58 · 402 阅读 · 0 评论 -
解决没有windows10系统没有telnet命令测试端口通信问题
在window系统中ping 和 telnet命令是最为常用的几个命令,但是win10系统只含有ping命令,telnet命令显示不是内部命令,这时,如果需要测试某个的ip的某个端口是否可以进行通信,单纯依靠window是不行的,我们可以通过安装插件。查找资料发现有一个tcping的工具可以取代telnet的功能使用方法 跟telnet的方法一样如: tcping www.baidu....原创 2019-12-25 17:34:50 · 3397 阅读 · 1 评论 -
restTemplate方法使用
先看看RestTemplate类的Outline:最上面的成员和下面的几个构造方法可以先大概看一下。就是选择性的去构造消息转换器,用来接收和传递相应的类型的HTTP请求数据。下面的是重点,各种HTTP请求如下:GET请求的有:先看前端3个getForObject方法。重载的3个方法,其区别就是传参数不一样,返回的内容都是一样的。我们可以看一下这3个方法的接口定义(RestT...转载 2019-05-22 23:20:06 · 4341 阅读 · 0 评论 -
如何给List中的map进行排序
解决办法,通过获取List中map的key值,然后进行排序 Collections.sort(list, new Comparator<Map<String, Object>>() { public int compare(Map<String, Object> o1, Map<String, Object> o2) { ...原创 2018-11-23 16:32:01 · 15610 阅读 · 1 评论 -
tomcat启动报错:org.apache.tomcat.util.bcel.classfile.ClassFormatException
今天将项目打包,放到tomcat中允许时,点击启动,报如下错误:问题:Unable to process Jar entry [COM/ibm/db2os390/sqlj/custom/DB2SQLJCustomizer.class] from Jar [jar:file:/D:/tomcat/tomcat7/apache-tomcat-7.0.30-windows-x64/apache...原创 2019-08-06 16:39:16 · 2760 阅读 · 0 评论 -
JDBC读取数据优化-fetch size
JDBC读取数据优化-fetch size最近由于业务上的需求,一张旧表结构中的数据,需要提取出来,根据规则,导入一张新表结构中,开发同学写了一个工具,用于实现新旧结构的transformation,实现逻辑简单,就是使用jdbc从A表读出数据,做了一些处理,再存入新表B中,发现读取旧表的操作,非常缓慢,无法满足要求。读取数据的示例代码,conn = getConnecti...原创 2019-08-06 10:03:55 · 469 阅读 · 0 评论 -
JAVA -Xms -Xmx -XX:PermSize -XX:MaxPermSize 区别
首先需要了解,JVM按照其存储数据的内容将所需内存分配为堆区与非堆区两个部分:堆区即为通过new的方式创建的对象(类实例)所占用的内存空间 非堆区即为代码、常量、外部访问(如文件访问流所占资源)等当我们碰到内存溢出的时候,我们就需要设置这个两个部分占用的内存了配置方法:配置堆区:-Xms 、-Xmx、-XX:newSize、-XX:MaxnewSize、-Xmn 配置非堆区:-X...原创 2019-03-14 19:37:08 · 3315 阅读 · 0 评论 -
删除windos服务显示服务已经标记被删除
今天重装mysql时,需要删除之前安装的mysql服务,按照网上说的用sc delete删除服务的时候,一直显示该服务已经标记被删除,打开服务管理器,服务的描述信息显示为2,按照网上删除服务,在服务管理器页面就是一直显示有mysql的服务。最后发现windwos进程管理器中有有关mysql的进程在运行。最后我得解决办法时,打开windows进程管理器,关闭mysql的有关进程,然后管理员权限下...原创 2019-03-02 15:11:06 · 1145 阅读 · 0 评论 -
java 不丢失精度运算
问题:java的运算中,你可能遇到过以下问题double a = 0.012;double b = 0.103;double c;c = a+b;(c的结果可能为0.1150001)这是由于运算过程中,丢失了精度的原因我们可以用BigDecimal类解决这一类问题public double GetResult(double numA, double numB, ...原创 2019-01-16 19:19:39 · 1060 阅读 · 0 评论 -
java后台封装树结构形式数据
1.首先,了解我们的需求,需要展示的格式是:然后了解我们的数据库结构数据库中顶级节点的父节点为空,即PARENTORGID为空,其余的节点的PARENTORGID都为父亲节点的id2.下面开始进行后台编码实现方法为,首先再数据库中查询出所有组织结构的数据,数据格式为List<Map<String,Object>>形式,首先遍历,将顶级节点的数据设置好,...原创 2019-01-21 20:35:48 · 5304 阅读 · 0 评论 -
swagger基本使用学习
1:认识SwaggerSwagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。作用:1.接口的文档在线自动生成。2.功能测试。Swagger是一组开源项目,其中主要要项目如...原创 2018-11-02 11:09:44 · 309 阅读 · 0 评论 -
java switch case 语句接枚举类 实现判断
首先定义枚举类,如:public enum DataTypeEnum { /**小时类型值**/ HOUR("hour"), /**小时类型值**/ DAY("day"), /**小时类型值**/ WEEK("week"), /**小时类型值**/ MONTH("month"), /**小时类型值**/ YEAR...原创 2018-10-24 11:41:17 · 22461 阅读 · 1 评论 -
java 日志文件或控制台如何输出一个数组对象或自定义对象
输出数组对象:Arrays.asList方法例如:params = new Object[]{new Date(beginTime),new Date(endTime),node.getMn()}; LOG.info("参数为:"+Arrays.asList(params));输出自定义对象:JSONObject.fromObject例如: 导包:import ...原创 2018-10-24 10:48:16 · 6146 阅读 · 0 评论 -
indexOf,LastIndexOf 区别 String ,StringBuilder ,StringBuffer 区别
1.———indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 LastIndexOf方法可返回某个指定的字符串值在字符串中最后一次次出现的位置。 2.String ,StringBuilder ,StringBuffer 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在这方面运行速度...原创 2018-10-25 15:55:28 · 1125 阅读 · 0 评论 -
解决java java.lang.OutOfMemoryError问题
导致OutOfMemoryError异常的常见原因有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 代码中存在死循环或循环产生过多重复的对象实体; 使用的第三方软件中的BUG; 启动参数内存值设定的过小;此错误常见的错误提示:tomcat:java.lang.OutOfMemoryError: Pe...原创 2019-03-14 19:52:54 · 535 阅读 · 0 评论 -
java实现url地址可变
今天遇到一个问题,需要实现一个接口的url地址是可变的如:http://loclhost/public/web/api/v1/interpolation/day-data/2018-12-16http://loclhost/public/web/api/v1/interpolation/day-data/2018-12-17两个接口之间只有后面的日期不一样,这时我们可以考虑用@Path...原创 2019-03-13 14:31:27 · 5055 阅读 · 0 评论 -
安装多个版本的jdk后出现Java -version和你配置的环境变量的jdk版本不一致的问题
问题一:你安装的是java7,与Java8,你配置了环境变量为Java7的路径,但是你用Java-version输出的版本号确实Java8的版本号。原因:windows电脑装jdk1.8后 它会在你的环境变量当中的path开头 自动加上了 C:\ProgramData\Oracle\Java\javapath; 这样一个配置。导致你后续如果安装jdk1.7然后重新配置了JAVA_HO...原创 2019-07-30 09:16:12 · 2486 阅读 · 0 评论 -
easyexcel使用
本文仅为一个笔记使用,具体参考http://www.360doc.com/content/19/0322/17/41564354_823421849.shtml原创 2019-07-03 19:21:00 · 2038 阅读 · 0 评论 -
java实现导出内容不固定的word文档
之前遇到过一个需求,需要导出一个word的周报,周报的内容是可变,然后网上找了下方法,下面摘抄一种方便的实现手段:Java用freemarker导出word一、模板的制作先用Word做一个模板,如下图:(注意,上面是有表格的,我设置了边框不可见)然后另存为XML文件,之后用工具打开这个xml文件,有人用firstobject XML Editor感觉还不如notepad++,我...转载 2019-07-09 11:57:00 · 1718 阅读 · 0 评论 -
java面试大纲
一、基础篇1.1、Java基础面向对象的特征:继承、封装和多态 final, finally, finalize 的区别 Exception、Error、运行时异常与一般异常有何异同 请写出5种常见到的runtime exception int 和 Integer 有什么区别,Integer的值缓存范围 包装类,装箱和拆箱 String、StringBuilder、String...原创 2019-05-30 21:02:02 · 641 阅读 · 0 评论 -
java 获取当前方法的调用栈
本文的出发点在于处理现场问题时,想看到方法的调用过程StackTrace(堆栈轨迹)存放的就是方法调用栈的信息,每次调用一个方法会产生一个方法栈,当前方法调用另外一个方法时会使用栈将当前方法的现场信息保存在此方法栈当中,获取这个栈就可以得到方法调用的详细过程。StackTraceElement stack[] = Thread.currentThread().getStackTrace(...原创 2019-05-17 11:38:51 · 18478 阅读 · 0 评论 -
jms与ActivityMQ中的简单使用
一 .什么是消息中间件1,消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者)生活中的例子:比如现在出现的各种快递柜或者E栈其实就相当于我们变成邻域的消息中间件,如果没有...转载 2019-04-15 14:41:09 · 442 阅读 · 0 评论