JAVA
G1GC调优时遇到的坑
近期,出于某些原因,对线上项目进行JVM调优,希望能将年轻代大小固定下来而非动态分配,于是在启动参数上增加了-Xmn=3G ,结果上达到了预定,而然在查看监控是却发现,原本程序gc的STW时间只需要30ms左右,加完这个参数后却达到了300ms,相差近10倍,这是一个很严重的问题了
于是我去查了oracle关于g1相关的文档,终于找到了答案:
评估和微调 G1 GC 时,请记住以下建议:
年轻代大小:避免使用 -Xmn 选项或 -XX:NewRatio 等其他相关选项显式设置年轻代大小。固定年轻代的大小会覆盖暂停时间目标。
原本参数中设置了-XX:MaxGCPauseMillis=10……
Jackson 2.11.0无法使用@JsonCreator反序列化枚举值
最近升级了spring boot的版本,结果发现原本使用@JsonCreator反序列化枚举值都报错了,报错内容如下:
.w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Input mismatch reading Enum `xyz.jieee.demo.DemoEnum`: properties-based `@JsonCreator` ([method xyz.j……
Spring boot 2.4.2 redisson报错问题排查
这几天我把项目里的spring boot升级到了最新版本:2.4.2,然后启动的时候发现redisson报错了,确切的说是redisson依赖的netty报错了。报错内容如下:
2021-01-31 20:01:30.788 WARN 1764 --- [ main] i.n.r.d.DnsServerAddressStreamProviders : Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. Th……
使用Gitlab和Docker自动化部署spring-boot应用
Gitlab CI是Gilab的一部分,只需要编写一个.gitlab-ci.yml文件即可完成所有CI工作。
本文中,使用GitlabCI的前置条件
在gitlab上已有spring boot项目
应用服务器上已安装docker
有docker镜像托管(本文中使用Docker Hub)
在服务器上已生成了SSH密钥
需要创建的文件
Dockerfile 用于构建Docker镜像
.gitlab-ci.yml 用于定义整个CI流程
GitlabRunner配置
找一台服务器作为gitlab-runner的宿主机,安装docker
$ docker pull gitlab/gitlab-runn……
使用Spring ldap操作active directory
本文介绍spring boot集成ldap操作微软active directory。
依赖环境
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/>
</parent>
...
<dependencies>
...
<dependency>
<groupId>org.springframework.b……
Java处理富文本中的XSS攻击
目前,web应用或多或少会用到富文本编辑器,这就很容易引起XSS攻击,这里介绍一种Java处理XSS攻击的工具类:Jsoup
目前最新版本maven坐标:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>
使用方法非常简单,只需一行代码:
String result=Jsoup.clean(source,Whitelist.basic());
第二个参数是白名单设置(白名单中定义了一些标签和标签属……
由cookie SameSite引起的坑
最近有个项目需要嵌入在另一个系统的iframe中运行,但是一旦运行在iframe中,就出现用户无法登录的象限。系统后台采用Spring boot+Spring Security进行鉴权,用户登录后会写入一个session的cookie,但是当页面第二次请求时,会发现cookie并没有携带在请求上,最后查找了一些资料,发现是cookie的SameSite属性在搞鬼。
a
上图是用户登录时,Spring写入的cookie,我们发现最后一个SameSite属性值为Lax。参考相关文档(https://developer.mozilla.org/en-US/docs/Web/HTTP/Header……
Activiti清库脚本
在Activiti开发中,经常会产生大量垃圾数据,这时候就需要清理Activiti数据库,但是Activiti数据库中存在大量外键约束,所以就需要按顺序删除相关数据,具体顺序如下:
DELETE FROM act_hi_attachment;
DELETE FROM act_hi_comment;
DELETE FROM act_hi_detail;
DELETE FROM act_hi_actinst;
DELETE FROM act_hi_identitylink;
DELETE FROM act_hi_procinst;
DELETE FROM act_hi_……
Spring boot集成Elastic-search并添加中文分词器
1. 在pom中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
2. 新建Elastic Search索引配置文件
es_setting.json
{
"index": {
"analysis": {
"analyzer": {
"ik_pinyin_analyzer": {
"type":……
- 共9篇
- 1