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