自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 批量插入数据时防重复的实用技巧

场景业务上经常遇到批量插入数据的场景,比如上传Excel、或者做数据同步(一次保存几十上百条记录)。保存的时候需要保证幂等性,比如订单号相同的数据不能存在多条。简单的处理方式就是加上一个每次save前先查询下,存在则插入,否则更新或不处理该条数据。增加某个字段的唯一索引,插入时记录中如果重复则会显式抛出MySQL的异常,需要自行处理异常。这两种方案弊端都很明显,就是数据量小时可以接受,数据量大时速度巨慢,而且数据库的交互次数很多,占用数据库连接。解决方案1.使用insert ignore i

2021-12-01 15:04:16 3844 2

原创 设计模式-建造者模式

建造者模式定义将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。理解建造者模式属于创建型模型,是一种用来创建对象的设计模式,更加注重复杂对象的构建过程。与工厂模式和工厂方法模式相比,不再是更注重如何生产不同种类的对象,而是复杂对象的生产、装配流程。建造者模式所完成的内容就是通过将多个简单对象通过一步步的组装构建出一个复杂对象的过程。建造者模式主要解决的问题是在软件系统中,有时候面临着”一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的过程构成;由于需求的变化,这个复

2021-07-27 21:51:41 120

原创 Maven scope作用

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-07-26 12:37:10 5372

原创 Atrthas-阿里云开源Java诊断工具学习

Arthas介绍官方文档官方介绍Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?有什

2021-07-25 23:24:50 361

原创 反应式编程见解

多线程正常来说,由一个线程串行执行的程序,可以通过多线程的方式进行拆解其中单线程程序可以分为两种:IO密集型计算密集型我们使用多线程编程,主要是为了充分发挥当前多核PCU的计算能力,使并发变为并行。在程序间没有相互依赖关系的情况下,会极大提高程序的执行效率。并且会随着CPU核心的提升,理论上效率会越来越高。但现实情况并非理想,很多程序中的步骤都是相互依赖的,即A依赖B,B依赖C,C依赖D。需要考虑 一致性成本的话,并发执行的效率会大大折扣,会随着CPU核数的提升而降低。反应式编程反应式

2020-07-05 20:08:31 322

原创 JVM指令手册

栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈iconst_5 将int类型常量5压入栈lconst_0 将long类型常量0压入栈lconst_1 将long类型常量1压入栈fconst_0 将

2020-05-10 14:42:12 130

原创 SpringBoot踩坑:No converter found for return value of type: class...

今天刚搭建的SpringBoot工程测试时发现使用@RestController注解的controller里的方法返回信息报错,代码如下:@RestController@RequestMapping("/swagger")@Api(value = "Swagger2 在线接口文档")public class TestController { @RequestMapping(va...

2020-04-23 18:12:20 7984

原创 Java23种设计模式总结-学而不习则罔

冰冻三尺,非一日之寒经常说到Java的设计模式,今天做个总结和分享,以便学习。设计模式并没有用到新的任何关于Java的新知识点,无非就是大佬们在根据Java语言特性的基础上,根据一定的设计原则,结合具体业务场景,在长期的实践中总结出来的经验或者说是套路。合适的业务员场景选择合适的设计模式,能使我们开发人员的编码设计出代码复用性高,封装性高,易于维护和拓展的弹性系统。有些设计模式比较相似,比...

2020-04-08 14:42:53 93

原创 ThreadLocal-线程本地变量个人理解

说明ThreadLocal 本意为线程本地变变量,或者说叫本地线程变量。通过他可以实现在同一个线程内实现数据共享。这里有个重点就是同一个线程内,如果不是同一个线程,自然就会失效。之前看过一本名叫《高并发程序设计》的书中将它比喻为人手一支笔,我理解的是,每个线程都可以自己给自己签名,而不需要排队去找别人签名,听起来比较有趣。原理先来看源码package java.lang;import j...

2020-03-28 22:17:34 256

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除