道阻且长-行则将至-行而不辍-未来可期
技术出身的菇凉,Java攻城狮,技术专家,资深技术专家拭目以待
展开
-
tcpdump测试环境网络极其不稳定,需要排查下什么原因导致的,抓取网络包排查结果记录
为了排查下,是不是网络问题导致的!原创 2023-05-09 15:28:24 · 172 阅读 · 0 评论 -
Maven:分析剔除无用的jar引用,打出来的jar太大如何优化?
目前打出来的SpringBoot的jar太大,之前80M,后来需求叠加,目前已经猛增到140M.感觉里面肯定有一些无用的jar占用掉了空间,那么就需要优化掉!原创 2022-10-17 09:50:51 · 1995 阅读 · 0 评论 -
SpringBoot自定义实现数据库动态切换使用切面实现
尽量控制影响范围,需要在原来的基础上进行优化下代码逻辑,原来的是xml配置文件,现在统一的修改为:application.properties 方式的配置文件,当然也可以改为yml的配置文件,可是目前SPringBoot 的原来配置文件是application.properties ,老旧的xml配置方式修改为该方式进行优化!下面是动态的切面进行默认的动态表切换操作!只要添加了之前的注解的话,那么切面进行调用手柄类,切换数据库表的切换!只要添加了这个注解,那么就可以动态的切换不同的数据库连接。...原创 2022-08-09 16:53:20 · 648 阅读 · 0 评论 -
XxlJobConfig分布式定时器任务管理XxlJob配置类,替代
废弃原来的quartz定时器的任务管理,总体来说,本地服务应该使用quartz定时任务还是不错的选择,可是多个应用服务的话,也就是分部署应用部署,还是建议使用XXjob吧,这个前台页面可以自定义开发,所以使用体验较好,多应用系统使用上来说还是不错的!...原创 2022-08-08 10:47:17 · 761 阅读 · 0 评论 -
JVM内存溢出在线分析Dump文件以及在线分析打开.hprof文件得出JVM运行报告jvisualvm怎么在线分析
我目前在测试环境模拟一些JVM异常的情况,可是不知道怎么进行分析这个,之前公司有测试专家建议使用Jprofile工具可以检测到这个JVM溢出情况,压力测试以及之前有过生产问题,就是使用shiro二级缓存里面配置的ThreadLocal。导致的内存溢出。我这次模拟的是内存不够导致OOM。以及线程过多导致内存溢出!.........原创 2022-07-28 15:41:30 · 1428 阅读 · 0 评论 -
@async 线程执行时间长自定义优化SpringBoot执行线程池
原来的注解是@Async现在修改为自己定义的一个注解。进行指定,线程这个指定的方法是一个public的方法,不可使用static修饰/***资讯专题默认线程池执行器配置*@return资讯专题默认线程池执行器bean*///只有主线程shutDown的时候,线程才会停止的拒绝策略}}主要得java‘代码’定义目前线程池的常量/**总控默认线程池*/}...原创 2022-07-24 16:08:12 · 497 阅读 · 0 评论 -
上传OSS文件如何进行区别文件名,对文件进行加密之后命名解决文件名称冲突问题
1、针对文件进行MD5命名,这样就会上传不一致的名称了!针对文件名称的MD5进行加密这个方法不太行:String fileName = Md5Utils.getMd5(file.getOriginalFilename()).concat("."+FilenameUtils.getExtension(file.getOriginalFilename()));这种办法容易同名称的文件名称上传会覆盖掉原来的!优化版本:进行文件二进制的结果进行加密: fileName .....原创 2021-09-17 14:42:40 · 892 阅读 · 3 评论 -
实际项目中quartz的应用定时器操作Spring注入 quartz.spi.TriggerFiredBundle 触发器管理定时任务
quartz最好用的一点就是本地使用的,本地进行管理,相较于XXjob而言,XXjob就是分布式管理。在效率上是一样的,都是线程在每秒钟进行扫描,扫描到此时的Cron表达式声明的时间点就会触发执行, 如果没有扫描到,就会沉睡线程!quartz需要自己管理所有的发定时器,数据库表维护,比如说里面需要自定义很多表进行关联触发器 就是都兼容使用了Cron时间表达式。主要是的代码是实例化,在Spring里面,进行注入,然后进行可以开启调用。实例化触发器!下面是Spring里面代码的应用。在这里主要是针对定时器原创 2022-06-14 13:21:03 · 331 阅读 · 0 评论 -
ava.lang.NoClassDefFoundError: org/apache/velocity/context/Context解决办法
ava.lang.NoClassDefFoundError: org/apache/velocity/context/Context解决办法原创 2022-05-31 19:18:41 · 3707 阅读 · 2 评论 -
Clean up the broken artifacts data (.lastUpdated files) and reload the project.问题解决办法
Cannot resolve plugin org.apache.maven.plugins:maven-source-plugin:<unknown> Clean up the broken artifacts data (.lastUpdated files) and reload the project.解决办法!原创 2022-05-26 21:07:11 · 4769 阅读 · 1 评论 -
配置化自定义实现1.实现接口,2.自定义配置3.默认配置
1、登录需要添加白名单,主要可实现单个接口的跳过校验配置,作为开发可以针对接口进行swagger-ui.测试,本身swagger-ui.不带有cookie的,所以单个接口是无法通过权限校验的;postman需要每个接口都需要带有cookie参数。2、多种方式实现兼容,可自定义实现接口跳过鉴权,也可以自己配置application.properties或者yml进行添加跳过接口短连接,如果都没有那就实现原有的固定配置;3、参考SpringBoot的配置化,可插拔热配置。非常有效!原创 2022-05-23 16:07:29 · 285 阅读 · 0 评论 -
解决mybatis-plus内置雪花算法主键重复问题,部署不同服务器上的主键id重复问题
mybatis-plus主键重复部署不同服务器产生同一主键问题原创 2022-05-23 11:01:26 · 4426 阅读 · 2 评论 -
前台页面查询时间是今天12点可是第二天日期才能查询到今年下午的数据什么原因导致的
前言:最近升级Mysql驱动进行升级,导致一系列的查询问题,主要是是因为前端查询语句是正常的一整天日期查询条件是【2022-05-18 00:00:00 - 2022-05-18 23:59:59】主要原因导致的是Mysql驱动升级没有配置好!1、升级好pom依赖<mysql.version>8.0.19</mysql.version><!-- runtime --><dependency> <groupId&g..原创 2022-10-31 17:20:08 · 334 阅读 · 0 评论 -
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is ja
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.OutOfMemoryError: Compressed class space怎么解决原创 2022-05-18 10:19:34 · 2090 阅读 · 1 评论 -
Correct the classpath of your application so that it contains a single, compatible version of org.s
目录详细的报错信息详细的日志报错信息如下:解决办法思路我的解决办法详细的报错信息Correct the classpath of your application so that it contains a single, compatible version of org.springframework.beans.factory.config.ConfigurableListableBeanFactory主要是引用的阿波罗配置的jar与Spring的bean的类冲突了..原创 2022-05-07 15:14:33 · 505 阅读 · 2 评论 -
Use try-with-resources or close this “FileOutputStream“
Use try-with-resources or close this "FileOutputStream" in a "finally" clause.原来代码: /** * @param contents 二进制数据 * @param filePath 文件存放目录,包括文件名及其后缀,如D:\file\bike.jpg * @Title: byteToFile * @Description: 把二进制数据转成指定后缀名的文件,例如PDF,PNG等 *原创 2022-04-18 13:52:31 · 1161 阅读 · 0 评论 -
动态表名称在不同业务之间切换的实际场景重构实现二最新版本的Mybatis-plus
前言:针对历史数据归档前迁移的需求进行分析并且实现,使用到了这个动态表名;实际需求 实际需求 技术实现 降低数据表的查询压力 历史数据迁移出,当前数据表仅保留近3个月数据 尽量减少计划性停机和非计划性停机 兼容历史数据查询 无缝的数据迁移,对业务影响降低到最小 针对大数据量表做分表迁移 数据迁移提升应用程序的可用性和快速反原创 2022-03-28 15:23:57 · 427 阅读 · 1 评论 -
动态表名称在不同业务之间切换的实际场景重构实现
前言:针对历史数据归档前迁移的需求进行分析并且实现,使用到了这个动态表名; 实际需求 技术实现 降低数据表的查询压力 历史数据迁移出,当前数据表仅保留近3个月数据 尽量减少计划性停机和非计划性停机 兼容历史数据查询 无缝的数据迁移,对业务影响降低到最小 针对大数据量表做分表迁移 数据迁移提升应用程序的可用性和快速反应原创 2022-03-28 15:12:37 · 364 阅读 · 0 评论 -
模板设计模式使用SPring源码里面很多,实际场景中的应用kafka的消费
前言实际场景中的应用代码如下:import lombok.extern.slf4j.Slf4j;import org.apache.kafka.clients.consumer.ConsumerRecord;import org.springframework.util.CollectionUtils;import java.util.List;/******************************************** * 模块名称: * 主要功能是做原创 2022-03-28 14:06:15 · 1769 阅读 · 0 评论 -
参数转换实际参数是data返回给前端是另外一个参数
前言问题描述是这样的,项目需要重构,所以原来的参数名称都变了,原来返回前端的名称是body;private Object body;明显的不符合业务规范,也不符合开发规范;需要重新的定义个字段,但是与前端交互的还是body;后端做了变更,可是前端没有人力做变更,所以需要一种办法就是后端已经重构完成,原来的服务直接停用,然后启用新的服务就可以的;那么这种情况需要怎么样解决呢?解决办法与前端交互的转义通过后台不做变更;前端变更;前端进行写转义的方法,对相关的一些接口返回做数据对象转换,原创 2022-03-07 17:21:08 · 1608 阅读 · 0 评论 -
重构的必须要使用的是一个功能就是需要看的懂类图,SringBoot升级重构,会导致原来的配置失效,所以需要懂得看类图
前言我这么单独的重构升级kafka消费者,重新建立一个模块实现,发现原来的配置已经失效,很多类已经不存在了原来的版本是SpringBoot2.03,现在的版本是2.3.12,所以最开始的一些配置写法上,发生了很大的改变,使用的原来的代码,完全不起作用,需要重新的写实现,发现呢,这个类名都变了无法知道这个实现者,最后搞了一个晚上才解决kafak消费者和监听者,单笔消费和批量消费配置以及初始化实现,所以在这里记录一下这个经验就是必须要知道类图依赖,我使用的Idea2020.03,快捷键为Eclipse配置,原创 2022-03-06 12:12:09 · 77 阅读 · 0 评论 -
解决Failed to introspect Class KafkaMetricsAutoConfiguration
问题Failed to introspect Class KafkaMetricsAutoConfiguration原因:重构的时候遇到这个问题,主要是因为重新升级SpringBoot版本从2.0升级到2.3.12导致的版本不兼容问题解决建议去官网看下依赖的版本Dependency versions我的全部依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apac原创 2022-03-03 21:20:44 · 823 阅读 · 0 评论 -
springboot源码怎么运行二讲解怎么导入运行springboot源码
前言结合自己负责的项目进行重构,同时面试他人的前提下,进行学习SPringBoot源码。因为Springboot源码2.3版本之后不在使用pom依赖,所以maven工程导入是打不开的!通过上一篇文章的 讲解前提条件准备完成之后,进行这一篇内容,讲解如何运行SPringBoot源码,我这边本地运行的是SPringBoot版本是2.4版本的源码!要满足前提条件: java安装JDK最好jdk8和jdk11版本的环境安装好 maven3.6+ gradle6.9 Int原创 2022-02-12 15:34:39 · 748 阅读 · 0 评论 -
重构之前的数据统计,用于数据归档,要考虑数据迁移
前言平台应用重构之后,那么就必须考虑的一件事情特别重要的就是数据归档,针对历史数据如何处理,特别是我这个平台应用的历史数据已经突破天际,已经过千万,而且还有几张历史很重要的表数据已经超过亿级的量级,真的很考验能力!下面就开始我在做重构前提的种种准备工作记录: 统计重要表数据,历史总量,季度,年度,月度区间的数据量 针对历史数据归档设计 最终考虑如何进行 1、统计数据1.1统计目前全部数据表总数select '详细说明' ,'统计条数(条)' from i原创 2022-02-11 15:44:58 · 664 阅读 · 0 评论 -
项目重构如何针对性能优化
重构的意义原创 2022-01-18 22:37:05 · 212 阅读 · 0 评论 -
MANIFEST.MF 里面字定义参数作用不大会按照maven里面的pom版本定义设置参数
前言:MANIFEST.MF 我这在重构项目的时候,自定义这个文件,在日志启动的时候打印出来版本号,可是最终的实践结果有点打脸,其实没有什么作用,下面的内容是我的这一次重构经验。实际生效的是我在pom里面定义的version的参数。打印出来的以及maven打包生成的MANIFEST.MF都是一致的。可见我自定义的MANIFEST.MF并没有生效,而且在jar里面没有找到我定义的MANIFEST.MF说明在打包过程中被覆盖掉了!我定义的位置是:src\main\resources\META-INF原创 2022-01-06 10:59:52 · 405 阅读 · 0 评论 -
Failed to instantiate [org.springframework.data.redis.connection.jedis.JedisConnectionFactory实例化配置失败
前言:主要最近重构升级底层依赖版本,导致原先的一个系统以及完全起不来了。异常如下Failed to instantiate [org.springframework.data.redis.connection.jedis.JedisConnectionFactory]: Factory method 'redisConnectionFactory' threw exception; nested exception is java.lang.NoClassDefFoundError: redis原创 2021-12-30 15:49:55 · 4779 阅读 · 0 评论 -
configuration.setUseDeprecatedExecutor(false);已删除最新版本无法配置分页配置如何解决mybatis-plus-core.version>3.4.3.4
configuration.setUseDeprecatedExecutor(false);已删除最新版本无法配置分页配置如何解决mybatis-plus-core.version>3.4.3.4最新版本配置类如何更新原创 2021-12-29 14:38:34 · 3282 阅读 · 0 评论 -
【项目重构经验贴-问题】统一管理project的pom的依赖管理,通过一个parent的pom进行确定各个子module的依赖jar版本号
重构第一步就是放弃原来项目的结构,新建一个SoringBoot工程,进行统一的管理设计,首先要统一管理各个子module的版本依赖version,避免相互依赖冲突的情况。如有必要统一升级操作方便,子module的pom 里面不需要再次定义version。原创 2021-12-27 20:54:16 · 771 阅读 · 0 评论