- 博客(119)
- 资源 (3)
- 收藏
- 关注
原创 CORS跨域not a secure more-private排查及修复记录-Chrome最新版
出现以上跨域问题后,可以尝试下更换IP地址,更换解析方式去解决问题,最好双域名在联调期间使用同一中方式进行域名解析。想法二验证结论:www.timer1.com 前端页面部署在11.xxx.xxx.xxx网段下,www.timer.com 服务端接口部署在 10.xxx.xxx.xxx 网段下,发现问题重现,无法正常解决。:将运营后台的前端、后端都部署到预发环境,并且在同一个机房中,同11.xxx.xxx.xxx 网段,以上问题解决,可以正常进行前后端分离跨域请求方案。:将域名升级为Https。
2023-01-19 12:04:52
4725
原创 mybatis plus generator 3.5.1 从了解到自定义定制VO、PO、DTO
mybatis plus generator 3.5.1 最新 代码生成器、使用 Velocity 模板自定义生成工具类(默认)1、主要配置方法在以上代码中已列出,为 initInjectionConfig() 方法,需同步配置信息//1、指定生成的自定文件存放路径/**存放生成文件的 其他实体类 存放的package地址**///2、自定义重新生成自定义、定制类的工具/*** 自定义模板解析器*///3、定义注入配置方法/*** 自定义注入配置* @return*//**自定义生成模板参数**/
2022-11-11 09:47:54
7146
2
原创 Spring Mvc Mybatis中解决 jdbc dataSource 无法正常赋值问题${}
一、背景说明 新搭建了一个项目,框架使用的spring+spring Mvc+Mybatis ,数据库使用的是MySql,项目可正常启动,但是在功能中使用数据库时就出现以下错误信息:### Error updating database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Coul...
2020-04-21 22:09:56
759
原创 借助capstone解析JVM崩溃 hs_err_pid.log 日志中的机器码
一、背景说明 在项目正常启动后,运营一段时间后,发现java进程死掉JVM崩溃,在项目服务器中生成hs_err_pid.log 错误日志,下面介绍一下hs_err_pid.log 日志中的Instructions 信息的解析。二、解析Instructions 信息中机器码信息 将Instructions 信息中的机器码信息转换为汇编码 其中Instructions...
2020-04-20 10:27:03
744
1
原创 idea 通过正则表达式找到不匹配字符串内容进行全局查找、替换
背景说明在项目中需要找到不规范代码进行全局查找,替换成规范代码。例如:找到所有属性无注释的代码,idea中快捷键(ctrl+r)执行替换操作逻辑如下所示:注:同样的正则也支持在idea中进行全局查找、替换,快捷键(ctrl+shift+r)以上正则表达式详细说明:(?<!你的正则表达式) -》 标识不匹配的意思\n ...
2020-01-20 18:31:14
3214
原创 基于Spring IOC容器实现工具类静态方法调用的三种方式
背景说明在spring MVC的项目中定义配置读取工具类时,发现需要使用Spring IOC容器进行注入,原始方法就是直接使用@Autowired 将依赖类注入到工具类中,想要用工具类时也得需要借助@Autowired进行注入,操作起来太复杂,完全丧失了工具类的灵活性。下面整理了将Spring IOS容器中的对象注入到工具类静态方法中的三种实现方式,详细方式如下所示:1、基于@PostCo...
2020-01-18 11:54:41
1817
1
原创 nginx OpenResty lua resty http 代理网关从无到有搭建
一、背景说明准备在项目中基于nginx、OpenResty搭建一个简易网关,实现同一域名根据不同cookie代理不同docker功能,降低前端、移动端多业务线并行测试联调成本。简单来说就是服务端有多个测试环境docker分别部署不同业务需求代码,通过在前端、移动端种植cookie(存放服务端测试环境docker IP地址)方式让其具有可选择服务端测试环境能力,大大降低联调环境配置成本。具体coo...
2020-01-14 15:22:42
1985
原创 使用ForkJoinPool线程池调用 jdk 1.8 并行流parallelStream
一、背景说明随着Jdk 升级到1.8后,项目中使用parallelStream 等并行流调用方式逐渐增多,在进行jstack 查看线程时,发现大量的ForkJoinPool.commonPool-worker-xx线程,但是无法具体定位到是哪个业务线在使用,考虑使用自定义线程池使用parallelStream,详细代码如下所示二、自定义线程池具体实现代码如下所示:package co...
2020-01-07 22:24:03
1348
原创 nginx+lua access_by_lua_file 间接性404问题排查
一、背景说明准备在项目中基于nginx搭建一个简易网关,实现同一域名根据不同cookie代理不同docker功能,降低前端、移动端多业务线并行测试联调成本。简单来说就是服务端有多个测试环境docker分别部署不同业务需求代码,通过在前端、移动端种植cookie(存放服务端测试环境docker IP地址)方式让其具有可选择服务端测试环境能力,大大降低联调环境配置成本。具体cookie的解析逻辑在n...
2020-01-06 09:56:22
7274
1
原创 深入浅出Https
一、带着问题走进HTTPS1.看到https首先想到什么:SSL/TLS、数字证书、安全、加密、密文传输2.https总共经过几次加密:2~3次3.都用了哪几种加密算法:对称加密、非对称加密、数字签名4.这几种加密算法都用在了哪里:验证证书、业务数据传输、传输预主密钥二、假如没有Https该如何进行安全传输2.1.这种场景在应用中非常常见,它存在哪些安全隐患? ...
2019-12-31 18:25:57
1166
原创 微服务拆分之通用工具jar包管理方案
一、背景说明对现有系统进行微服务化拆分,在拆分过程中遇到了通用工具jar包版本管理、版本升级的问题,以下为我们部门的解决方案。二、问题详细说明原有系统中服务较少,通用工具类各自为战,未统一管理。现进行微服务细致拆分,随着微服务的增多,继续保留各服务间通用工具类各自为战的情况,在处理依赖底层jar包版本升级、jar包不兼容、工具类升级问题上,大大增加了维护成本,并且无法面面俱到。三、目前...
2019-12-10 21:16:26
1673
4
原创 Spring Orika Bean Copy 属性丢失问题说明
一、背景说明考虑到bean复制性能问题,在SSM框架中使用引入了orkia 实现bean复制。上线一段时间后,发现部分线上机器出现bean复制后属性丢失问题,重启后正常二、问题详细说明在线上机器使用orika 进行bean复制时,在bean属性类型、名称相同情况下无法赋值的情况,属性值全为null,其中最特别的仅出现在部分bean上,大部分bean复制完全正常,并且出现问题的bean不固定...
2019-09-27 10:20:14
1445
1
原创 nginx 配置Https强转和Cross跨域配置撞车遇到的坑
一、背景说明项目中Https强转逻辑是在nginx层面配置的,Cross跨域逻辑处理是在项目的Java代码层面处理的。向服务器发起Http跨域请求时,出现Cross跨域逻辑处理失效问题nginx 中Https 强转配置,如下所示:if ($server_port = 80 ) { rewrite ^(.*)$ https://$host$1 permanent;}Cros...
2019-07-25 20:00:34
2100
原创 CMS 升级到G1遇到RSS内存泄漏问题
一、背景说明 伴随着JDK版本不断攀升,已逐步将项目中JDK由1.7升级到1.8,偶然发现G1 GC相比CMS加入了一些新特性,像并行独占式运算,指定停顿目标时间,减少空间碎片等。最终决定将项目中使用的CMS升级为G1,在升级过程中遇到RSS内存泄漏问题。二、问题说明 在将项目的GC升级为G1后,yong GC可正常执行,各项指标正常,但是java进程的RSS随着...
2019-07-24 20:52:43
2352
原创 使用JDK1.8 parallelStream 引发的 Lock wait timeout exceeded; try restarting transaction
一、背景说明在线上环境中数据库监控中,突然出现Lock wait timeout exceeded; try restarting transaction 错误,并伴随着大量数据库请求超时报警。二、了解问题问题说明update data_sku SET sku_str ='测试',modified = now() where id = 123java.sql.SQLExcepti...
2019-06-24 21:28:02
2053
原创 Cannot expose request attribute 'userName' because of an existing model object of the same name
一、背景说明 在预发布环境中进行功能验证时,点击“我的反馈”菜单时出现Cannot expose request attribute 'userName' because of an existing model object of the same name 错误,在测试环境正常显示。二、认识异常11-Jun-2019 16:43:57.429 SEVERE org....
2019-06-24 17:27:58
4309
1
原创 getOutputStream() has already been called for this response 从了解到解决
一、背景说明 在tomcat的localhost.log日志中时长见到 getOutputStream() has already been called for this response 异常的身影,一直不知由于哪里原因导致异常的产生,此异常并不会影响前端客户正常使用。二、认识异常 异常详情如下所示(部分代码):org.apache.catalina....
2019-05-17 21:40:03
95941
16
原创 自构建多级缓存
一、背景说明 准备使用责任链模式,构建多级缓存链,依次逐级向下取值,直到取到值为止。将取到的值再逐级赋值给未取到值的缓存级。二、定义多级List链路接口类Chainpublic interface Chain { String get(String key );}缓存公用接口public interface CacheClient { S...
2019-03-13 01:39:35
736
原创 借助ThreadLocal实现数据库读写分离,诡异的问题
一、背景说明 准备将项目中读取数据库操作切换到从数据库上,调研方案后最终决定借助ThreadLocal实现,在测试过程中遇到间歇性异常情况,经排查是由于相同的insert、update语句会间歇性的命中到从库数据库,最终导致异常。二、读写分离配置 原理 : 在spring-jdbc.jar包中提供了可动态切换数据源的实现类(AbstractRoutingDat...
2019-03-10 20:18:04
874
2
原创 使用POI中XSSF 实现“合并单元格时,仅保留左上角单元格的值,而放弃其他的值“ 问题排查笔记
一、背景介绍 在项目中借助POI 和 JXLS 两个开源工具jar实现excel数据导出,原有使用POI->HSSF方式进行数据导出,随着导出数据量的增大远远超出单sheet 65535条上限,将导出方式由POI->HSSF升级为POI->XSSF方式。 术语说明: JXLS:国外常用数据模版导出工具,easyPOI 是国内常用数据...
2019-02-16 12:09:59
11859
1
原创 JavaAgent Maven 配置案例
一、背景说明javaAgent技术,在运行方法之前运行的拦截器,通过JVM加载class二进制文件的时候,利用ASM动态的修改加载的class字节码文件,在监控方法前后进行统一处理。可以粗略理解为使用字节码方式完成的功能切面。常用于监控方法耗时、调用次数等功能。javaAgent程序以jar包方式供业务功能代码使用,通过添加 VM options方式动态指定javaAgent程序功能业务功...
2019-01-28 18:11:26
4909
原创 让我们一起来了解性能评估标准参考值
一、MySql单端口读:1000/s单端口写:700/s单表容量值:5000万条二、MySql单端口读:40000/s单端口写:40000/s单端口内存容量:32GB三、应用服务器请求量的峰值:5000/s四、Kafka单机读:30000/s单机写:5000/s五、IDC同一机房网络来回:0.5ms异地机房来回:30~100ms同一机...
2019-01-28 08:55:34
450
原创 NoClassDefFoundError: org/apache/log4j/spi/LoggerFactory ESAPI 问题排查笔记
一、背景介绍 在原有项目中使用的是log4j,为了保证与其他项目日式输出方式保持一致,准备将log4j升级为logback,增加日志滚动存储方式。二、问题说明 在测试人员进行功能验证时,发现进行商品搜索时出现如下异常:Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/spi/LoggerFact...
2019-01-15 22:31:56
7746
2
原创 spring MVC 请求中文乱码问题排查详解
一、背景介绍 java后端使用Spring MVC框架,在需求测试过程中遇到,服务端接收到Android请求时出现中文乱码问题,但接收到IOS请求时中文正常显示。二、问题排查步骤一 由于在web.xml中配置了编码转换器,代码如下所示:<filter> <filter-name>encodingFilter</filter...
2019-01-09 21:52:46
362
原创 自定义、定制findbugs扫描类型,忽略指定类型
一、背景介绍 在使用findbugs对项目代码进行扫描时,默认findbugs扫描级别较高,部分可以接受bug也会被扫出来,影响项目整体扫描报告,为严重问题的排查及修改增加了难度。二、配置findbugs忽略文件,排除文件 排除文件findbugs-exclude-bugs.xml,文件内容如下所示:<?xml version="1.0" encoding...
2018-11-09 18:24:12
3956
原创 Mysql 开启主从复制实战笔记
一、背景介绍 由于目前系统测试环境数据库部署在公司虚机上,已经部署使用一段时间了,由于虚机存在宕机数据丢失的风险,于是准备开启数据库主从复制备份机制,防止虚机宕机造成损失。二、操作步骤 1)数据迁移 由于测试环境数据库已经使用一段时间了,所以需要将现有数据库结构和数据迁移到从机器数据库中,可以使用以下两种方式同步:方法一:use my_data; ...
2018-11-09 17:33:13
332
原创 nginx 开启gzip压缩
一、背景介绍 历史遗留问题,在项目创建初期前端力量薄弱,网站大部分image、js、css与业务应用存放在一起,未上传到CDN中,最终导致网站访问缓慢,经过排查由于静态资源大量消耗带宽。接下来介绍通过nginx的gzip对静态资源进行压缩,减少带宽消耗。二、gzip gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,用.gz结尾 ...
2018-10-26 10:35:47
1653
原创 JVM配置CMS调优实战笔记
一、背景说明 由于原有项目未进行JVM配置,全部是用默认JVM配置,在压测过程中TP99惨不忍睹,Young gc使用PS Scavenge,Full gc使用PS MarkSweep二、JVM基础知识 1)虚拟机内存模型: 程序计数器、虚拟机栈、本地方法栈、JVM堆、方法区(粗略理解包含永久代) 2) 垃圾收集算法:...
2018-10-25 20:15:30
4829
2
原创 SpringMVC 重写、扩展HttpServletRequest请求参数
一、背景说明 由于在项目进行前后端分离改造时,请求由多种传参方式统一定义为JSON格式传输,在改造过程中需要前后版本兼容。如果能在Controller接收参数之前将JSON格式参数进行解析成原有参数,对Request请求参数进行重写,这样能可以大大减少开发成本。二、调研 抱着对Request请求参数目标出发,对@InitBinder和HttpServletRequestW...
2018-10-16 11:34:52
3442
原创 手机无法连接使用Fidder代理
在电脑中开启了猎豹wifi,开启fidder软件,配置代理端口8888,手机连接猎豹wifi,在wifi高级中配置fidder代理 手机配置代理:wifi(连接猎豹wifi)-->高级代理:手动主机名:通过ipconfig 查询出的电脑IP地址端口:fidder 设置的端口8888(fidder--tools--options--connections--fidder...
2018-04-16 16:02:01
804
原创 Star UML 类图关系
类之间关系一、依赖关系:虚线+箭头表示A类(或接口)中的某个方法中使用到了B类,那就说明A类依赖B类,箭头由A类指向B类 二、实现关系:虚线+空心箭头表示接口和实现类之间的关系,箭头由实现类指向接口 三、继承关系:实线+空心箭头表现类和抽象类(类)继承关系,箭头由子类指向父类 四、关联关系:关联关系可以大致分为单向关联、双向关联、聚合关联、组合关联单向关联:实线+...
2018-02-03 11:34:44
1433
原创 Nginx获取自定义请求header参数
一、自定义请求header (Jquery为例)$.ajax({ ....... headers: { Accept: "application/json; charset=utf-8", TimerLocal: "Bin" //这个是自定义的请求头 }, .......});二、在Nginx中获取请求header在nginx的location配置中,在获取h...
2018-02-01 10:49:11
12779
3
原创 StarUML Method 构造方法 普通方法帮助说明
使用StarUML创建类Class,并为Class类添加方法(构造方法/普通方法): 为指定方法添加参数信息:为指定方法添加返回值:在为方法添加返回值时先为方法再添加一个参数,将参数的direction属性由in修改为return为接口添加方法与类相同!...
2018-02-01 10:41:47
2483
1
原创 StarUML interface 接口帮助说明
使用StarUML创建接口,在starUML默认配置中,interface 接口展示如下所示: 现要将interface 展示为如下方式: 将interface 由圆形转为矩形需要做如上图所示操作 ...
2018-02-01 10:04:44
5919
原创 JConsole 远程链接配置(linux-tomcat)
一、摘要: 在window系统中使用JVM自动可视化工具JConsole远程链接linux系统下的tomcat,对其进行监控。 二、步骤 1.修改linux系统下的tomcat的catalina.sh文件,在“# - Execute The Requested Command--” 注释的上面添加如下配置:CATALINA_OPTS="$CATALINA_OPTS -D...
2017-08-02 15:15:57
313
原创 log4j 日志不输出原因总结
一、问题说明: 将log4j.properties添加到项目的\WEB-INF\classes目录下,日志不按lo4j配置方式输出。 二、问题原因: 项目中即引入了log4j.jar,又引入了org.apache.logging.log4j,日志jar包冲突,日志不输出! 三、lo4j配置注意事项 1、web.xml 配置 ...
2017-06-27 14:38:50
5381
原创 jQuery ajaxSend 失效
一、问题前景: 在处理跨站请求伪造(CSRF)安全时,使用了jQuery的ajaxSend为jQuery的Ajax请求统一添加请求参数token。 二、问题描述: jQuery(document).ajaxSend()函数在Firefox浏览器中不执行,在其他浏览器中正常使用。 三、原因: 最后定位原因由于页面中引入2次j...
2017-06-26 10:03:08
580
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人