- 博客(304)
- 问答 (1)
- 收藏
- 关注
原创 easyexcel解析csv文件
复制一份已有的数据库对象,加个VO后缀代表是非数据库对象,修改此VO结尾的对象的字段属性全部为string,因为在easyexcel转换对象映射的时候会默认转成string类型。此注解定义和csv文件列的关系。这里注意那些没用的属性不要出现在此映射类中。
2024-08-02 16:54:35
628
原创 sftp做成一个池子
sftp:mft:pool:生产sftp连接,获取上一步定义好的属性实现三个方法,create方法创建连接import comtry {throw new RuntimeException("连接sfpt失败" , e);} }try {throw new RuntimeException("连接sfpt失败" , e);
2024-08-02 16:04:48
480
原创 mysqldump迁移数据
数据量在G级别的可以使用mysqldump来迁移,T级别的不建议使用,测试验证6.9G的文件通过mysqldump方式gz后699M,耗时27分钟,压缩率在10倍,30分钟处理7G数据,换算下来一分钟处理238M数据,结论就是如此。恢复的时候速度很快,6.9G的数据恢复具体时间没看,大概不到5分钟时间。
2024-06-13 17:38:00
382
原创 磁盘挂载lvm
新拿到一个主机,挂载磁盘,但是之前实在是没做过,这里也算是学了点东西,挂载分pv vg lv这些,这里第一个坑就是直接挂载这个后续没办法扩容,如果挂载的盘上装的数据库那就惨了,只能把数据迁移走再扩容了,下面是可扩容的操作建议全部按下面的步骤来。
2024-06-13 11:40:39
319
原创 springboot+mybatis项目集成p6spy输出格式化sql日志
本文背景:公司项目框架是基于springboot+mybatis的web项目,由于鄙人在使用过程中发现打印的mybatis日志每次都要粘贴出来,然后再用在线工具的格式化填充参数,很不方便,最近发现那个在线的工具打不开了,更不方便了,因此想有没有直接可以输出的填充好参数的sql语句,当然idea的插件不算哦,因为线上服务是没有插件的,也没有集成mybatisplus因此经过一番折腾研究,找到了一个比较好用的开源依赖,可以无缝使用,他就是p6spy。
2024-03-27 23:48:15
1248
原创 springboot2.X整合activity6.X
/排除此配置,暂时排除security的验证,真正的项目中需要打开此配置。版本6.0.0目前最新的版本是7后续会加上7的集成,6和7的差别不是很大。新建springboot项目版本。至此一个建议版本的集成就完成了。让程序自动创建相关的表信息。
2024-03-25 08:52:24
821
1
原创 java客户端实现传文件,服务端用dto的属性MultipartFile类型接收
2024年发的第一篇,哎 都说认识会变的,没错我就变了,23年发了2篇,24年估计也不会多,为什么呢?因为基本没有什么我不会的了,以前总感觉自己跟做了3~5年的开发技术差不多,现在我不这么认为了,因为很多3年多的技术是摸鱼过来的,所以显得我就有一点很强,哈哈哈哈哈哈哈哈哈哈,上正文。
2024-01-27 19:43:14
605
原创 Optional常规用法
总结一下Optional用法,大概分为一下几类,不是说以前的写法不行,都可以只是现在的这种方式可以炫,其实也没啥性能提升。
2022-11-17 14:43:42
739
原创 CompletableFuture理解与应用
背景:有需要用到异步编程的,需要响应式回调,不是单线程不好,redis就很棒。根据实际情况选择,介绍了,Future和RxJava的Observable之间的区别可以看看。
2022-11-16 17:56:51
812
原创 实体类dto流式set
第二种:链式set,跟stream用起来一样很流畅。看到别人这么些还可以,没实际意义只是炫一下。第一种:普通的一行一行set。
2022-11-15 16:40:21
401
原创 线程池用法
刚好符合预期目标,3耗时最长第一个调用但最后返回,1最后调用耗时最短最先返回,异步获取结果,三个任务按照各自执行的速度谁先完成先拿到谁的结果。刚好符合预期目标3耗时最长只有等3返回了1和2才返回,每次都写每次都查记录成册,以后就看这里。callable实现同上。可以看到打印出的顺序事。可以看到打印出的顺序事。
2022-11-10 13:48:12
154
原创 一个简单的Callable
至此简单的Thread+FutureTask完成。至此简单的线程池+FutureTask完成。主线程直到获取‘将来’结果。调用任务类,不获取返回结果,调用任务类,获取返回结果,,跟上面一样,这里不过多写。
2022-11-09 17:23:16
124
原创 消耗服务器cpu和内存
背景:接到一个需求服务器的cpu利用率必须达到16%以上,不然会回收部分服务器资源。写一个程序消耗服务器cpu资源但要保持在16%不能太高也不能太低。启动(只占用其中两核心,分别占用60%、60%;,此时运行top命令查看cpu的使用率。如果要释放cpu资源,运行。至此shell脚本消耗内存和cpu的代码完成。是class文件的包名,也就是java文件的。至此java消耗服务器cpu和内存的脚本完成。需要构造消耗2颗cpu的资源运行脚本。消耗cpu脚本cpu.sh。消耗cpu和内存的脚本。
2022-11-09 14:11:21
2362
原创 一个简单的Runnable
首先是一个任务类,这里做具体的业务逻辑,需要什么参数通过。其实质跟thread模式创建一样。调用任务类发起请求,实现主线程。调用任务类发起请求,实现主线程。
2022-11-08 10:26:53
173
原创 springBoot-aop-aspect注解形式和方法名形式
被拦截的方法,需要被拦截的方法上加注解。这样一个简单的注解拦截就实现了。这样就实现了一个传统的拦截。
2022-11-07 17:40:16
245
原创 mysql乾坤大挪移A库下的表去B库
使用场景:A库下的表mv到B库去,因为是mv所以很快,这里强调不是copy,执行完A库下的表就没了。测试几十G的数据只需要十几秒。
2022-10-27 11:30:43
560
原创 一个简单的Thread
首先是一个任务类,这里做具体的业务逻辑,需要什么参数通过构造方法引入。调用任务类发起请求,实现主线程。调用任务类发起请求,实现主线程。
2022-09-08 16:49:34
190
原创 @Profile注解多环境
在容器中如果存在同一类型的多个组件,可以使用@Profile注解标识要获取的是哪一个bean,这在不同的环境使用不同的变量的情景特别有用。例如,开发环境、测试环境、生产环境使用不同的数据源,在不改变代码的情况下,可以使用这个注解来切换要连接的数据库。注:2、4、5步其实是带参构造方法的步骤,相当于把带参构造方法拆开,在其中插入一条语句设置容器环境,这些可以在Spring的源码中可以看出,比如下面的代码。接下来,看下@Profile注解的源码,如下所示。
2022-09-08 15:23:10
916
原创 spring事件监听与发布
在使用 Spring构建的应用程序中,适当使用事件发布与监听的机制可以使我们的代码灵活度更高,降低耦合度。Spring提供了完整的事件发布与监听模型,在该模型中,事件发布方只需将事件发布出去,无需关心有多少个对应的事件监听器;监听器无需关心是谁发布了事件,并且可以同时监听来自多个事件发布方发布的事件,通过这种机制,事件发布与监听是解耦的。创建/监听事件应该以下准则事件类应该继承事件的发布者应该注入事件监听者应该实现创建事件类 继承} }创建事件的发布者 注入。
2022-09-08 15:22:09
790
原创 redis锁基于注解实现
Target({/**请求唯一标识*/ String key() default "";}// 获得当前访问的class Class
2022-09-05 20:00:10
352
原创 easyExcel导入报错excelType
三种类型其他都报标题的错,那么好,我的是小写xlsx,改成大写问题解决。第一时间检查excel类型没问题,因为本地跑是可以的,然后百度无果。百度基本都是说流的问题,尝试过也没用。
2022-09-05 19:59:48
2364
原创 mybatis批量插入
这里传入的map结构中的key必须是users类似于传list用@Param绑定的别名,map如下。用@Param注解绑定别名,xml中的collection的值要和@Param一致。不用@Param注解绑定,xml的collection的值默认传list固定写法。用mybatis的@Param绑定别名,xml里面collection写别名。的方式在下一篇查询的时候会列举,对于优化系统至关重要。丢掉单条插入,大数据选批量插入。
2022-09-05 19:59:16
479
原创 mybatis批量查询效率对比
查询条数foreach耗时${}耗时pstm耗时最快最慢8000030722519596pstmforeach4000015971099330pstmforeach20000860639136pstmforeach10000389315101pstmforeach500022718141pstmforeach2000535616pstmforeach耗时:foreach>${}>PreparedStatement。
2022-09-05 19:58:55
1458
原创 mybatis批量插数据效率对比
可以很明显看到当数据量大于4W的时候pstm的效率比foreach高50%左右。在数据量不上万的情况下两者选foreach编码简单,效率可以忽略。插入字段值30+以上,小于30个不统计。分别插入不同数据量对比两种方式的效率。上一篇说到批量插入数据,这里详细对比。
2022-09-05 19:58:22
358
原创 线程池执行过程
总体逻辑就是:创建新的Worker对象,并获取Worker对象中的执行线程,如果线程不为空,则获取独占锁,获取锁成功后,再次检查线线程的状态,这是避免在获取独占锁之前其他线程修改了线程池的状态,或者关闭了线程池。(3)向任务队列中添加任务成功,由于其他线程可能会修改线程池的状态,所以这里需要对线程池进行二次检查,如果当前线程池的状态不再是RUNNING状态,则需要将添加的任务从任务队列中移除,执行后续的拒绝策略。此时表示线程池中的任务队列已满,并且线程池中的线程已满,需要执行拒绝策略,代码如下所示。
2022-09-05 19:57:53
1177
原创 java彻底搞懂单例模式
百度百科:是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。
2022-09-05 19:56:47
225
原创 java线程异步get
分析:通过结果可以看到,代码执行任务的顺序是:3-1-2,获取结果的时候返回也是按照执行的顺序。这里有一个缺陷,主线程会一直等待任务3的结果,任务3需要执行3秒,任务1和任务2执行完了,却被任务3阻塞住了,当然部分场景这样也可以。在开发中为了提高系统处理效率,用到多线程,多线程不细讲,主要说明一下多线程执行后拿到返回结果,这个也是部分新人容易忽视的,刚好最近在使用记录下。可以看到,拿到返回结果是按照执行速度快慢返回的,避免了第一种阻塞的方式,这种方式也叫做异步获取。
2022-09-05 19:51:14
257
原创 es查询报错Found class org.elasticsearch.common.bytes.BytesReference, but interface was expected
Found class org.elasticsearch.common.bytes.BytesReference, but interface was expected
2022-07-24 20:51:10
1133
原创 feign调用get和post记录
调用方传userId和size并绑定@RequestParam,服务提供方会自动解析到userId到User对象的UserId上,解析size到PageRequest对象的size上。get请求调用方的形参必须都加注解,服务提供方是对象接收,调用方必须用@RequestParam修饰,多个就写多个。服务提供方和服务调用方保持一致。服务提供方和服务调用方保持一致。服务提供方和服务调用方保持一致。服务提供方和服务调用方保持一致。服务提供方和服务调用方保持一致。服务提供方和服务调用方保持一致。...
2022-07-20 14:42:01
951
原创 mongodb安装
参考:https://blog.csdn.net/qq_41992943/article/details/115546623https://blog.csdn.net/qq_29467891/article/details/107032924https://blog.csdn.net/m0_37967652/article/details/122105071下载:https://www.mongodb.com/try/download/community本次下载版本号:4.4.13 系统:cen
2022-04-12 10:39:05
825
java读写锁多线程并发问题?
2021-11-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人