蒋固金(jianggujin)的专栏

骨宜刚、气宜柔、志宜大、胆宜小、心宜虚、言宜实、慧宜增、福宜惜、虑不远、忧亦近...

关于XML解析存在的安全问题指引

最近一段时间被曝出的微信支付的XML解析存在的安全问题,主要问题是XML外部实体注入漏洞(XML External Entity Injection,简称 XXE),该安全问题是由XML组件默认没有禁用外部实体引用导致,非微信支付系统存在漏洞。微信官方做了回应,原文地址:https://pay.w...

2018-08-13 07:50:49

阅读数:41

评论数:0

JCodec用法

JCodec包含了常用的编码、加解密的JAVA实现。 Maven: <!-- https://mvnrepository.com/artifact/com.jianggujin/JCodec --> &lt...

2018-08-11 13:00:29

阅读数:14

评论数:0

JAVA代码添加License

在开源代码的时候,我们经常会在代码顶部添加License信息,每个文件复制粘贴显然是比较麻烦的,所以写了一个工具类方便为源码添加License部分,供大家参考,可以按照实际情况进行修改。 import java.io.BufferedReader; import java.io.Buffer...

2018-08-07 16:39:01

阅读数:35

评论数:0

JAVA字节数组转十六进制字符串

常见的MD5等摘要运算的结果都是字节数组,通常我们见到的是转换后的十六进制字符串,今天就分享一下转换的代码。 package com.jianggujin.codec; public class JHex { private static final char[] DIGITS_U...

2018-08-04 13:03:38

阅读数:11

评论数:0

Cipher输入输出流

在java中提供了CipherInputStream和CipherOutputStream用于加解密的流处理,但是我在实际使用中发现会有一些莫名其妙的问题,数据丢失等,所以重写了两个流处理类。 package com.jianggujin.codec.util; public interf...

2018-08-04 12:35:14

阅读数:26

评论数:0

记一次发布项目到Maven

用了这么久的maven,第一次向中央仓库贡献代码,本编博客作为一次记录。 首先我们需要访问:https://issues.sonatype.org/secure/Signup!default.jspa注册一个帐号,后面与工作人员沟通都需要在这里完成。 注册的用户名密钥要记住,注册的邮...

2018-07-23 21:01:45

阅读数:49

评论数:0

JHttp使用文档

简介 JHttp是用java 编写的用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,基于原生的HttpUrlConnection实现,支持:GET、POST、PUT、DELETE、PATCH,HEAD、OPTIONS、TRACE请求,可以适应绝大部分业务场景,并提供了丰富的...

2018-07-16 11:17:31

阅读数:24

评论数:0

JAVA使用ServiceLoader加载服务

ServiceLoader是SPI的是一种实现,所谓SPI,即Service Provider Interface,用于一些服务提供给第三方实现或者扩展,可以增强框架的扩展或者替换一些组件。 其实关于ServiceLoader,我们平时虽然很少用到,但是却在背后为我们做了很多事情,最常见的就是J...

2018-07-13 14:35:01

阅读数:56

评论数:0

Druid Spring Boot Starter配置aop无效

Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。具体配置请参考这里,但是在使用aop-patterns配置的时候发现Spring监控无效,下面介绍一下解决方法,我用的版本是:1.1.10。 如果SpringBoot...

2018-06-20 21:11:30

阅读数:107

评论数:0

JAVA动态加载或卸载JAR包

在模块化开发的时候,我们经常会把一个模块的内容打包成一个FAT JAR,然后加载,实现模块的热加载,对于热加载的实现并不复杂,我们只需要定义自己的加载器,然后继承URLClassLoader就可以了,但是我们会发现一个问题,加载后的JAR 会被JAVA占用无法删除,所以如果我们的程序里面希望在不停...

2018-06-01 12:23:05

阅读数:441

评论数:0

Java操作注册表

从JDK 1.4开始,Java在java.util下加入了一个专门处理用户和系统配置信息的java.util.prefs包,其中一个类Preferences是一种比较“高级”的玩意。从本质上讲,Preferences本身是一个与平台无关的东西,但不同的OS对它的SPI(Service Provid...

2018-05-16 16:29:01

阅读数:66

评论数:0

Java判断图像相似性

判断图像的相似性主要用于图像的去重,一种验证相似性的思路是先将图像进行缩放至指定尺寸,然后进行灰度处理,去掉颜色特征,最后对处理后的图像计算哈希值,通过比对不同图像的哈希值的汉明距离来判断图像是否相似,下面我们直接上代码: package com.jianggujin.image; imp...

2018-05-05 14:20:36

阅读数:69

评论数:0

JAVA压缩JS或CSS文件

平时开发过程中使用的js或css文件基本都是未经压缩的方便调试,在真正上线后一般都会使用压缩后的文件,我们可以使用一些工具进行压缩,我们也可以通过JAVA代码自己实现文件的压缩,今天为大家介绍的是使用YUI Compressor实现的方式。 首先在maven中添加pom坐标 &...

2018-05-05 09:17:05

阅读数:94

评论数:0

JAVA使用easyexcel操作Excel

之前写过一篇《JAVA操作Excel》,介绍了jxl和poi读写Excel的实现,今天为大家介绍一下使用easyexcel对Excel进行读写,项目主页地址:https://github.com/alibaba/easyexcel 作者对easyexcel的介绍是: Java解析、生成E...

2018-05-04 22:40:48

阅读数:259

评论数:2

Java网络代理设置

因为工作需要,我们平时的开发都是在云桌面中进行的,云桌面存在网络限制,必须要用代理才能够访问网络,之前针对这种情况在我们自己封装的网络请求包中添加了相关代理的配置,但是最近开发中需要依赖第三方的包,在该包中会用自己实现的网络请求工具请求数据,这样的话,之前的配置就无效了,所以在测试这部分功能的时候...

2018-03-27 11:30:00

阅读数:419

评论数:0

SpringBoot全局异常处理(续)

在上一篇《SpringBoot全局异常处理》中介绍了两种处理全局异常的方案,今天我们继续来探讨一下如何更好地处理异常,比如:404之类的错误。 首先来怀念一下默认的错误页面,默哀三分钟。 哈哈,SpringBoot默认的错误页面就是一个白底页面加了一些错误信息。我们今天要解决的问题就是在之...

2018-01-31 16:36:24

阅读数:596

评论数:0

SpringBoot全局异常处理

系统的异常处理一直是我们在开发过程中的一个痛点,今天就为大家介绍一下如何在SpringBoot中进行异常处理,希望对大家有所帮助。 方案一:ControllerAdvice 新建一个用于异常处理的类,为其添加ControllerAdvice注解,然后配合ExceptionHandler注解添加...

2018-01-30 16:46:02

阅读数:208

评论数:0

SpringBoot集成MyBatis、PageHelper和通用Mapper

之前一直用SSM框架,今天尝试了一下将MyBatis、PageHelper和通用Mapper进行整合,所以将整合过程记录作为后续查看之用。

2017-12-28 21:42:10

阅读数:624

评论数:0

Android Studio 3.0集成Butter Knife8.8.1错误

随着双十一的到来,大家都在忙着剁手,而我却忙着填坑,各位看官准备好小板凳,且听小弟慢慢道来。

2017-11-11 17:13:12

阅读数:3408

评论数:1

Spring内置任务调度实现添加、取消、重置

使用Spring的任务调度给我们的开发带来了极大的便利,不过当我们的任务调度配置完成后,很难再对其进行更改,除非停止服务器,修改配置,然后再重启,显然这样是不利于线上操作的,为了实现动态的任务调度修改,我在网上也查阅了一些资料,大部分都是基于quartz实现的,使用Spring内置的任务调度则少之...

2017-09-11 20:15:43

阅读数:596

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭