自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(7)
  • 收藏
  • 关注

原创 Mybatis的插件管理怎么处理的

1. 原理MyBatis可以帮助我们在语句执行过程中的某一点进行拦截调用。它的实现原理就是插件采用责任链模式,通过动态代理组织多个拦截器(插件)将四大核心对象进行拦截增强变成个代理对象,从而可以改变Mybatis的默认对象的行为(诸如SQL分页改写,统计性能,打印日志等),mybatis源码环境搭建参考,通过mybatis的源码分析,我们可以更清楚的了解到策略模式和动态代理模式是如何使用的,后续在代码逻辑中可以借鉴2. 流程图3. 代码示例 <plugins>

2021-01-31 17:19:49 102

原创 本地缓存小计

1.概念 本地缓存,在我们日常开发中是必不可少的一种解决数据读取性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间,SpringBoot 1.x版本中的默认本地cache是Guava Cache。在2.x(Spring Boot 2.0(spring 5))版本中已经用Caffine Cache取代了Guava Cache。毕竟有了更优的缓存淘汰策略。这2个都是线程安全的,可以指定容量,多种过期策略,主要特性是将数据写入缓存时是原子操作。当缓存的数据达到最大规模时...

2021-01-24 18:14:50 180

原创 JAVA设计模式之装饰器模式

1.概念: 以对客户透明的方式来扩展对象的功能,用户根据功能需求随意选取组成对象的成分进行动态地将责任附加到对象上,通过方法的链式调用来实现装饰者提供了比继承更有弹性的替代方案,应遵循开闭原则(类应该对扩展开发,对修改关闭) 简单来讲就是动态的给一个对象增加一些职能,相对与生成子类更加灵活2.应用以及说明:1装饰模式增加强了单个对象的能力。Java IO到处都使用了装饰模式,经典的例子就是Buffered系列类如BufferedReader和BufferedWriter,它们增强了Read..

2021-01-23 11:52:43 177

转载 你不好奇 CPU 是如何执行任务的?

前言你清楚下面这几个问题吗? 有了内存,为什么还需要 CPU Cache? CPU 是怎么读写数据的? 如何让 CPU 能读取数据更快一些? CPU 伪共享是如何发生的?又该如何避免? CPU 是如何调度任务的?如果你的任务对响应要求很高,你希望它总是能被先调度,这该怎么办? … 这篇,我们就来回答这些问题。正文CPU 如何读写数据的?先来认识 CPU 的架构,只有理解了 CPU 的 架构,才能更好地理解 CPU 是如何读写数据

2021-01-16 21:08:52 149

原创 STAR结构化思维

概念S指的是situation,中文含义是情景,也就是在面谈中我们要求应聘者描述他在所从事岗位期间曾经做过的某件重要的且可以当作我们考评标准的事件的所发生的背景状况。T指的是task,中文含义为任务,即是要考察应聘者在其背景环境中所执行的任务与角色,从而考察该应聘者是否做过其描述的职位及其是否具备该岗位的相应能力。A指的是action,中文含义是行动,是考察应聘者在其所描述的任务当中所担任的角色是如何操作与执行任务的。R指的是result,中文含义为结果,即该项任务在行动后所达到的效果,通常

2021-01-15 00:38:14 1002

转载 Elastic Search中filter的理解

在ES中,请求一旦发起,ES服务器是按照请求参数的顺序依次执行具体的搜索过滤逻辑的。如何定制请求体中的搜索过滤条件顺序,是一个经验活。类似query(指search中的query请求参数),也是搜索的一种方式。与常见的搜索对比,filter不会计算搜索条件相关度分数,也不会根据相关度分数进行排序,相对效率更高一些。且filter内置cache,自动缓存常用的filter数据,有效提升过滤速度。语法:GET /test_sort/_search{"query": {"bool": {"filt

2021-01-07 00:54:46 1790

转载 使用枚举来巧妙干掉if-else,使代码更加优雅

导读:本文通过一个简单的例子来展示如何通过枚举巧妙地干掉if-else,使代码看起来更佳优雅。场景:当我们接收到一些数据需要对其进行处理时,由于它们来自于不同的渠道(如:腾讯,头条),不同渠道所需的处理方式不同,下面我们写一个简单Demo来实现该的场景。解决思路1、首先构建一个 GeneralChannelRule 基础规则抽象类,定义一个抽象方法process(),不同的渠道都需要实现该抽象方法。public abstract class GeneralChannelRule..

2021-01-01 17:07:02 346

空空如也

空空如也

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

TA关注的人

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