Java7 HTTPS 支持 TLS 1.1 TLS 1.2

在Java SE 7 中,SunJSSE 支持TLS 1.1 and TLS 1.2。但是考虑到当时(since 2011)很多服务器对这两个协议支持的不好,就把这两个版本的协议禁用,默认使用TLS 1.0。 如果要启用这两个协议的支持也很简单: 设置系统属性 https.protocols 指定Java HTTPS连接(HttpsURLCo...

从⽅不是方到Unicode正规化NFD, NFC, NFKD, NFKC

在做PDF解析的时候,发现甲方的方字一直匹配不上。解析出来的⽅字的Unicode值\u2F45,而我正常打字打出的方字Unicode值是\u65B9。 之前也遇到过从PDF中复制出来的字只是看着像其实是两个字,一直以为是OCR识别的问题。而这次PDF是我用Word另存为生成的,然后通过pdfb...

BDF2’s dependencyManagement

BDF2's dependencyManagement 根据自己需要自行删改项目 <properties> <spring.version>3.2.5.RELEASE</spring.version> <bdf2.version>2.0.7</bdf2.version> <bdf2.s...

Flyway migrate晚于JPA建表语句

Spring Boot下通过EntityManagerFactoryDependsOnPostProcessor来确保Flyway的初始化执行晚于JPA。但是有时候我们会希望由JPA完成表结构的维护,Flyway用来修数据、基础数据的维护。这个时候如果flyway执行早于JPA的表结构维护,可能会导致表或字段不存在的异常。 所...

Java多线程并发操作ArrayList

给公司一个业务系统做性能优化时,有个地方需要在循环内实现对外交互。有网络IO的地方很容易出现性能瓶颈,就打算通过parallelStream实现并发操作, List resultList = new ArrayList(); xxxList.forEach(item -> { result = ...

解决邮箱关闭导致的邮件无法发送问题 550 5.1.1 recipient is not exist javax.mail

业务方反馈系统的定时邮件没有收到。排查日志后发现,是人员离职后,其工作邮箱关闭,与其相关的业务系统的定时邮件通知的收件人列表内没有移除其邮箱,会导致邮件通知发送失败报"550 5.1.1 recipient is not exist"异常,导致整个邮件通知都没办法发出。 经过查阅文...

MacOS 下切换默认 Java (JDK)

TLDR 如果同时安装了 adoptopenjdk 11 和 adoptopenjdk 8,同时希望 8 做为默认 JDK,只需要把 /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Info.plist里的JVMVersion的值由1.8.0_222改为 x1.8.0_222(大概第42行)。这样我们的MacOS默认JDK就成为...

Tomcat与UTF-8,告别中文乱码

简介 UTF-8是网页应用中最常用的字符编码。它支持世界上正在使用的所有语言,包括中日韩。 本文我们会展示所有的配置以确保在Tomcat中使用 UTF-8。 连接器(Connector) 配置 一个连接器在指定的端口上监听连接。我们需要确保我们所有的连接器都使用UTF-8来编码请求。 ...

Maven 最佳实践

Maven 最佳实践

添加依赖 如果需要给项目添加依赖,只需要在pom.xml的<dependencies>节点下添加相关依赖就可以。 <dependencies> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version&g...

dubbo 接口调试

公司内部有多个项目中并使用 dubbo 相互间提供服务,每次相关接口调试与联调都是一种折磨,在有多个服务提供方时,不能确定这次调用由哪个提供方处理。在长期的摸索中找到如下调试方法: 1. 封装为 HTTP 接口 把接口封装为 HTTP 服务,就变成了 HTTP 接口的调试; 优...