Java
走马川行雪
这个作者很懒,什么都没留下…
展开
-
详解springcloud微服务技术栈(一)
微服务技术栈之初始微服务原创 2023-02-08 22:00:09 · 522 阅读 · 0 评论 -
Java实现图片压缩
通过Thumbnails压缩图片原创 2022-09-23 15:44:21 · 5843 阅读 · 0 评论 -
数据压缩介绍及实现
数据压缩的描述及实现转载 2022-09-06 14:10:05 · 199 阅读 · 0 评论 -
springboot连接数据库用户名密码加密
对数据库账号密码等信息进行加密,程序运行时进行解密。另一个种方式详见Gitee wj项目原创 2022-08-10 15:51:35 · 5837 阅读 · 0 评论 -
Java实现SSL Socket长连接
一、单向认证1、生成服务端密钥(配置了jdk的环境变量即可用keytool命令)命令:keytool -genkey -keystore server_ks.jks -storepass server_password -keyalg RSA -keypass server_password结果:会生成server_ks.jks密钥文件操作:将生成的server_ks.jks密钥文件配置到服务端2、生成服务端证书命令:keytool -export -keystore ser原创 2021-12-29 15:20:12 · 4253 阅读 · 1 评论 -
Java将10进制转换为指定位数的16进制
/** * 10进制转16进制. * * @param n 10进制数 * @param size 转换后的16进制位数 * @return 转换结果 */ private static String intToHex(int n, int size) { StringBuffer s = new StringBuffer(); String a; char[] b = {'0...原创 2021-12-27 16:30:41 · 943 阅读 · 0 评论 -
Java解析PKCS#7格式签名
用于Java中PKCS7处理的流行的通用库是BouncyCastle。一、首先需要引入相关依赖:<dependency> <groupId>org.apache.pulsar</groupId> <artifactId>bouncy-castle-bc</artifactId> <version>2.8.0</version></dependency>二、直接上原创 2021-10-20 13:38:49 · 5173 阅读 · 0 评论 -
Springboot事务回滚时设置日志不回滚
解决方案一:通过@Transactional(propagation = Propagation.NOT_SUPPORTED)注解的方式将记录日志的方法跳过事务。@Transactional(propagation = Propagation.NOT_SUPPORTED)public void recordLog(String logData) { //将日志存到数据库}解决方案二:通过切面AOP方式记录日志:Core Technologies...原创 2021-09-26 17:53:58 · 1666 阅读 · 0 评论 -
Java将String类型的日期转换成Date类型日期
首先要知道String类型的日期格式,如:String date = "2021/06/24 15:00:00"则可以通过java.text.SimpleDateFormat类进行转换:new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(date)原创 2021-06-24 15:06:48 · 27578 阅读 · 0 评论 -
Java读写ini文件
1、格式INI文件由节、键、值组成。节[section]参数(键=值)name=value例:[Total]num=1[Server]ip=127.0.0.12、代码封装import org.apache.commons.configuration.ConfigurationException;import org.apache.commons.configuration.HierarchicalINIConfiguration;import原创 2021-01-21 21:28:12 · 654 阅读 · 4 评论 -
SpringMVC项目连接数据库配置
1、applicationContext.xml(其中有些配置项不需要的可以不配置)<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/原创 2020-11-24 17:27:31 · 6099 阅读 · 0 评论 -
将文件流转换成byte[]数组
InputStream is = new FileInputStream(new File("D://a.txt"));ByteArrayOutputStream outputStream = new ByteArrayOutputStream();byte[] bytes = new byte[1024];int temp;while ((temp = is.read(bytes)) != -1) { outputStream.write(bytes, 0, temp);}//转.原创 2020-11-10 14:27:34 · 6874 阅读 · 2 评论 -
springboot启动成功后自动执行代码
1、通过实现ApplicationRunner接口:package com.bk.configs; import org.springframework.boot.ApplicationArguments;import org.springframework.boot.ApplicationRunner;import org.springframework.stereotype.Component; /** * Created by kangpeng on 2020-10-24. *原创 2020-10-24 10:41:28 · 808 阅读 · 0 评论 -
Android解决从服务端获取数据乱码问题
说明:服务端和客户端互传数据时可能会因为双方编码不同或其它原因导致接收到的中文显示乱码!解决办法://服务端上传的数据可以通过URLEncoder进行指定字符的编码String data = URLEncoder.encode("要传输的数据", "utf8");//客户端接收数据时通过指定字符的编码进行解码即可String message = URLDecoder.decode(data, "utf8");...原创 2020-07-20 15:37:08 · 960 阅读 · 0 评论 -
Java本地缓存
本文介绍了Guava Cache的基本使用方法,Google Guava Cache是一种非常优秀本地缓存解决方案,提供了基于容量,时间和引用的缓存回收方式。基于容量的方式内部实现采用LRU算法,基于引用回收很好的利用了Java虚拟机的垃圾回收机制。其中的缓存构造器CacheBuilder采用构建者模式提供了设置好各种参数的缓存对象,缓存核心类LocalCache里面的内部类Segment与jdk1.7及以前的ConcurrentHashMap非常相似,都继承于ReetrantLock,还有六个队列,以实现原创 2020-05-29 15:13:50 · 1315 阅读 · 0 评论 -
Java比较两个日期或时间的大小
String time1 = "2020-05-26 21:30:00";String time2 = "2020-05-27 21:30:00";//将字符串形式的时间转化为Date类型的时间Date date1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time1);Date date2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time2);...原创 2020-05-29 13:52:56 · 1383 阅读 · 0 评论 -
Java将字符串数组转换为对应的对象列表
转换代码:import com.fasterxml.jackson.databind.ObjectMapper;String strArry = "[{"id":"01", "name":"Java"}, {"id":"02", "name":"C"}]";ObjectMapper mapper = new ObjectMapper();List<Test> testList = mapper.readValue(strArry, mapper.getTypeFactory().原创 2020-05-22 17:56:35 · 2149 阅读 · 0 评论 -
Java多线程实现性能测试
1、创建多线程和线程池的代码:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;int threadSize = 100; //开启的线程数//创建线程池ExecutorService executorService = Executors.newFixedThreadPool(threadSize);原创 2020-05-18 16:36:44 · 1448 阅读 · 0 评论 -
根据关键字位置为PDF添加文本和图片
首先引入ITEXT5的jar包 1、存放根据关键字查找位置后的信息:public class TextLocal { /** * 关键字在PDF中的X坐标 */ private float x; /** * 关键字在PDF中的Y坐标 */ private float y; /** * 关键字在PDF中的页码 */ private int pageNum; /** ..原创 2020-05-14 19:22:30 · 1525 阅读 · 1 评论 -
利用InetAddress类确定普通地址和特殊地址
IP地址分为普通地址和特殊地址。在前面的文章中所使用的大多数都是普通的IP地址,在本文中将介绍如何利用InetAddress类提供的十个方法来确定一个IP地址是否是一个特殊的IP地址。 一、isAnyLocalAddress方法 当IP地址是通配符地址时返回true,否则返回false.这个通配符地址对于拥有多个网络接口(如两块网卡)的计算机非常拥有。使用通配符地址可以允许在服...转载 2020-04-17 15:43:12 · 1437 阅读 · 0 评论 -
IText5实现PDF签章流程
public class ReadMe { public static void main(String[] args) throws Exception { //1、创建PDF阅读器 PdfReader pdfReader = new PdfReader("需要签章的PDF文件路径"); //2、创建签章工具PdfStamper...原创 2020-03-24 09:47:31 · 2906 阅读 · 3 评论 -
Java获取GMT(格林威治)时间
格林威治时间(GMT)是指格林威治所在地的标准时间 ,是北京时间减去8个小时后的时间。1、以前是通过new Date().toGMTString()来获取,但是已过时;2、现在通过以下方法获取:import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.TimeZone;impor...原创 2020-03-13 10:19:56 · 7869 阅读 · 0 评论 -
Java下载指定内容的文件到本地
import org.apache.commons.io.IOUtils;import org.apache.commons.io.FileUtils;@PostMapping(value = "/download/file")public void downFileAuthor(HttpServletResponse response) { FileInputStream fis ...原创 2020-01-17 16:38:31 · 354 阅读 · 0 评论 -
(解决)使用IText在PDF上创建空白签名域
直接上代码://原PDF路径String srcPath = "C:/test.pdf";//保存后的PDF路径String desPath = srcPath.replace(".pdf", "_temp.pdf");//初始化PDF阅读器PdfReader pdfReader = new PdfReader(new FileInputStream(srcPath));//创...原创 2020-01-02 17:26:06 · 1944 阅读 · 7 评论 -
Java编译单个.java程序
命令:javac 【要编译的.java类(要指定类所在的路径或者在当前路径下执行命令)】 【-enconding utf8(指定编码)】 【-classpath 文件编译所在的目录(即编译时依赖的其他类所在的目录)】例:javac Test.java -encoding utf8 -classpath F:\Temp\workspace\TestServer...原创 2019-12-12 09:15:33 · 675 阅读 · 0 评论 -
Java运行jar包指定外部依赖的jar
程序在启动时经常会遇到指定外部依赖jar包的情况。1. Bootstrap Classloader方式://在系统class加载后加载java -Xbootclasspath/a: yilai1.jar:yilai2.jar: -jar test.jar注意:依赖的jar包间用冒号分割缺点:依赖的jar包要一个一个指定2.Extension Classloader...原创 2019-09-10 14:14:11 · 3710 阅读 · 0 评论 -
Java去除json数据中的null空值问题
1、描述@JsonInclude(JsonInclude.Include.NON_NULL)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理。2、使用用注解的方式放在标记类或者属性@JsonInclude(JsonInclude.Include.NON_NULL)public ...原创 2019-08-01 09:08:19 · 11899 阅读 · 10 评论 -
Java实现定时任务
一、普通Java项目实现定时任务1、Thread方式创建一个thread在while循环中重复运行,然后通过sleep方式控制每次循环的时间,实现简单的定时任务。//设置时间间隔为1秒final long timeInterval = 1000;Runnable runnable = new Runnable() { public void run() { ...原创 2019-07-31 10:25:57 · 2911 阅读 · 0 评论 -
Java在当前日期基础上加一年、一个月或一天
//获取当前日期Date date = new Date();//创建Calendar实例Calendar cal = Calendar.getInstance();cal.setTime(date); //设置当前时间cal.add(Calendar.YEAR, 1); //在当前时间基础上加一年//将时间格式化成yyyy-MM-dd HH:mm:ss的格式Simple...原创 2019-07-31 08:43:40 · 19532 阅读 · 3 评论 -
解决获取到的json数据中的Key中包含关键字
1、使用Gson解析在与Java关键字冲突的字段加上@SerializedName注解 @SerializedName("package") private String packages;2、使用Jackson解析在与Java关键字冲突的字段加上@JsonProperty注解 @JsonProperty("package") private String packages;3...原创 2019-06-03 15:19:23 · 2665 阅读 · 0 评论 -
Java获取指定的目录
1、SpringBoot下获取resources目录下的文件例:在resources目录下新建了cert目录,可以通过如下方式获取ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + "cert");...原创 2019-06-03 11:36:27 · 393 阅读 · 0 评论 -
Java将任意类型的Object对象转换为相应的实体对象
通过com.fastxml.jackson的ObjectMapper对象进行转换:ObjectMapper objectMapper = new ObjectMapper();objectMapper.convertValue(Object fromValue, Class<T> toValueType);原创 2019-06-14 09:05:05 · 84003 阅读 · 10 评论 -
Java装载so或dll库文件
1、调用目的标准的java类库可能不支持你的程序所需的特性。或许你已经有了一个用其他语言写成的库或程序,而你希望在java程序中使用它。你可能需要用底层语言实现一个小型的时间敏感代码,比如汇编,然后在你的java程序中调用这些功能。2、库文件存放位置Java一般有两个常用的path:classpath和java.library.pathclasspath:指向jar包的位置 ja...原创 2019-05-20 14:32:27 · 6393 阅读 · 7 评论