摘要:
一,背景介绍 系统较为复杂,现拆解日志切面部分,表述如下 1,A定时任务执行之前,记录开始日志 2,执行成功,记录成功日志,同时获取执行方法的结果 3,执行失败,记录失败日志。 二,代码结构 直接点,say nothing without codes, 1 <dependency> 2 <group 阅读全文
摘要:
一,mybatis-plus介绍 使用springboot配合mybatis-plus能大大提升开发效率,mybatis-plus相比mybatis来说,可以减少mapper.xml的开发,减少service层的编写。 下面say nothing without codes 二,代码结构 引包: 1 阅读全文
摘要:
一,内存泄漏? 首先说下结论,ThreadLocal导致内存泄漏?no,内存泄漏是由于使用不当导致的,姿势不对导致的问题多了去了,但这不是ThreadLocal的锅。 接着,我们来分析分析ThreadLocal的底层原理。 二,底层代码 1,看下Thread和ThreadLocal,ThreadLo 阅读全文
摘要:
一,原理 利用spring提供的AbstractRoutingDataSource的determineCurrentLookupKey,lookupkey路由方法决定DataSource。 二,步骤 准备拦截器,用于拦截mybatis的请求 1 @Intercepts({@Signature(typ 阅读全文
摘要:
一,问题分析 在实际开发过程中,遇到过统计相关的问题,对一个实体类中的数据进行合计,或按照某一函数进行过滤或者累计,由于java引用的是地址,这样就带来操作问题。 如: Table<Object,Object,Object> table = HashBasedTable.create(); Tabl 阅读全文
摘要:
一,启动命令如下 java -jar xxx.jar 或者 start javaw -jar xxx.jar 这样启动起来的服务,找不到关闭名称 二,解决方案: 1,修改启动方式: 拷贝 bin目录下的java.exe或者javaw.exe为项目名称,如 cdqm.exe 启动命令就变成了 cdqm 阅读全文
摘要:
一,简介 Opitonal是java8引入的一个新类,目的是为了解决空指针异常问题。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。 Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 Optional 的意义显然不止于 阅读全文
摘要:
一、Map<R,Map<C,V>>的缺点 Java编程中是否还在为map的嵌套而烦恼,就算stream的兴起也无法解决剖解内层map的痛苦。 为此Google设计了table解决该问题,table的底层实现仍然是嵌套map,只是在此基础上提供了若干api,极大简化了用户的开发工作。 二、开发流程 1 阅读全文
摘要:
关于String 大家都知道,String是final的,每次对它的操作都会产生新的String,这很大程度上是安全性的考虑,但是产生大量的String也是会有一些问题的,1.大量的String会对gc产生影响;2.两次 new String(“aa”)操作,产生的String不一样,如果用这两个去 阅读全文
摘要:
一,es原理 es 无非就是写入数据,搜索数据。你要是不明白你发起一个写入和搜索请求的时候,es 在干什么,那你真的是...... 对 es 基本就是个黑盒,你还能干啥?你唯一能干的就是用 es 的 api 读写数据了。要是出点什么问题,你啥都不知道,那还能指望你什么呢? 二,es 写数据过程- 客 阅读全文