记录下Java下使用System.getProperties()得到一个常用的系统信息,包括系统的名称等软硬件信息、Java的环境信息,直接上代码: private static void property() throws UnknownHostException { Runtime r = Runtime.getRuntime(); Properties props = System.getProperties(); InetAddress addr; addr = InetAddress.getLocalHo…

2022-03-17 0条评论 1004点热度 0人点赞 admin 阅读全文

需要在Java程序里获取当前系统的硬件信息(例如CPU、内存使用情况、磁盘使用情况、网络情况等) 有一个简单的方式就是利用操作系统的命令,让Java执行外部命令,解析这些命令的输出,例如调用Linux下的查看内存(free -m)查看硬盘空间(df -h)等,不过有个问题,不同的操作系统,这些命令是不一样的(例如Windows肯定是另一套命令),另外都是Linux还因为不同的版本,命令有差异,或者输出的格式不一样,解析的时候略有差异。 如果你只是针对单一的一个系统,做硬件信息解析,可以参考:https://blog…

2022-03-15 0条评论 1374点热度 0人点赞 admin 阅读全文

在用SpringBoot做API输出的时候,我们希望输出的对象是转换成JSON格式的,另外如果对象中有日期类型,希望能够对日期进行统一的格式化。 首先对SpringBoot项目进行配置(jsonMapper),新建MyConfiguration.java (如果有类似的配置文件,就只要修改就可以了) @Configuration public class MyConfiguration { @Bean(name = "jsonMapper") @Primary public ObjectMapper jsonMap…

2022-03-14 0条评论 1224点热度 0人点赞 admin 阅读全文

SpringBoot下使用定时任务,只需要加几个注释就可以了,详见:https://blog.terrynow.com/2021/07/10/java-spring-springboot-schedule-implement/ 不过发现一个问题,就是定时任务比较多,且时间上有冲突的时候,在一个任务执行的时候,如果正好有另一个任务开始,另一个任务可能不会执行,因为SpringBoot默认的定时任务使用的是单列队的执行器(Executors.newSingleThreadScheduledExecutor() ),对同…

2022-03-13 0条评论 2173点热度 0人点赞 admin 阅读全文

分享我自用的校验身份证是否合法的工具函数,另外还可以从身份证中提出相关信息,例如生日、性别、地区、转换身份证位数(15到18位)、还可以检测香港和台湾的身份证号,如下(相关信息写在静态函数注释里了): IdCardUtils.java public class IdCardUtils { /** 中国公民身份证号码最小长度。 */ public static final int CHINA_ID_MIN_LENGTH = 15; /** 中国公民身份证号码最大长度。 */ public static final i…

2022-03-05 0条评论 1372点热度 0人点赞 admin 阅读全文

网页显示某些小的图片需要转成base64的格式,例如<img src="data:image/jpg;base64,anc123==" />这样的形式,后台图片的文件或者类型,需要一个转换方法,工具方法如下: 可用户将RenderedImage(或者BufferedImage)以及File(图片文件)转成base64格式的。 /** * 把RenderedImage转成base64格式的形式,用于网页img标签显示图片 * @param img RenderedImage * @param format…

2022-03-01 0条评论 1394点热度 0人点赞 admin 阅读全文

分享我使用的用户解密微信支付APIV3的通知notify,根据微信支付官方的介绍:https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_5.shtml是使用的AEAD_AES_256_GCM加密方式,使用key、nonce和associated_data,对数据密文resource.ciphertext进行解密,得到JSON形式的资源对象。不过看了下,当前页面并没有相关的例子,下面贴出我使用的工具算法。 /** * AEAD_AES_256_GCM 解密 …

2022-02-26 0条评论 1987点热度 0人点赞 admin 阅读全文

需要解析这样的日期(例如微信支付apiV3返回的交易成功日期是类似这样的:2022-02-22T15:50:18+08:00)或者需要格式化成带有时区+8:00这样的日期,可以这样做(格式化字符串是yyyy-MM-dd'T'HH:mm:ssXXX): System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX").format(new Date())); Date date = new SimpleDateFormat("yyyy-MM-dd'…

2022-02-25 0条评论 4237点热度 0人点赞 admin 阅读全文

分享一下Java下使用SHA256withRSA签名的代码,例如微信支付APIv3中的签名,就是使用的SHA256 with RSA签名,并对结果进行base64的编码。 这里签名使用到的密钥文件,是使用了Spring的特性,通过@Value(value = "${my.wx.mchApiClientKey}")加载进来的,可以根据使用实际需求修改。 通过generateSignature函数,对要求的参数(数组)进行签名。 WXPayUtil.java 如下,在SpringBoot下我加了@Component注解…

2022-02-23 0条评论 3003点热度 0人点赞 admin 阅读全文

生成验证码发送的等场景下会用到,生成多少位(由参数传入)随机数字的字符串,代码如下: /** * 生成随机数字字符串 * @param length 生成数字字符串的长度 */ public static String generateRandomDigitalString(int length) { String str = "0123456789"; Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i …

2022-02-22 0条评论 1253点热度 0人点赞 admin 阅读全文
167891021