自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 资源 (2)
  • 收藏
  • 关注

原创 【内存泄漏】数据库连接connectionPhantomRefs内存过大

connectionPhantomRefs 集合无法回收

2024-04-01 17:40:47 988

原创 RSA加解密原理(简单易懂)

RSA加解密原理(简单易懂)

2023-03-20 23:27:14 643 1

原创 abc 联合索引查 bc索引到底走不走索引?

abc 联合索引查 bc到底走不走索引;

2023-03-10 00:35:52 1690

原创 SpringBoot自动装配原理、条件注解及封装Starter

SpringBoot自动装配原理、条件注解及封装Starter

2023-03-06 10:38:56 772

原创 解决Feign无法传递HttpServletResponse

我们在做响应流导出的时候,但是导出功能的提供方为下游服务,我进行feign调用。提供方正常代码编写这么写会报错的。调用方的HttpServletResponse 无法传递我们这里使用Feign原生的 feign.Response 做返回,调用方解析Response,写入自己响应流中。show code调用方注意若采用此种方法,feign的异常将不会走自定义的异常处理机制,源码如下...

2022-07-09 23:38:01 5306 11

原创 无视JVM、机器时区设置,将Date转化北京时间

JVM参数设置了时区,此时想将Date转成北京时间代码如下Instant 是没有时区概念的,他是个时间戳LocalDateTime、Date 有时区概念。== 不过像这种公司业务涉及全球业务,建议服务器 统一UTC时间,前台做时区转换。==......

2022-07-09 22:34:15 490

转载 【网络】Https的加密原理

引言为什么要用对称加密+非对称加密?为什么不能只用非对称加密?为什么需要数字证书?为什么需要数字签名?1.为什么需要加密?因为http的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是中间人攻击。所以我们才需要对信息进行加密。最容易理解的就是对称加密 。2.什么是对称加密?简单说就是有一个密钥,它可以加密一段信息,也可以对加密后的信息进行

2022-03-26 15:34:09 199

原创 【设计】DDD 领域驱动设计-----01 DDD概念介绍

1.DDD是什么领域驱动设计(英语:Domain-driven design,缩写 DDD)是一种由域模型来驱动着系统设计的思想,而不是通过DB表字段等数据字典来驱动系统设计来满足复杂需求的软件开发方法。领域模型是对业务模型的抽象,DDD是把业务模型翻译成系统架构设计的一种方式。2.DDD 解决了什么问题统一思想:统一项目各方业务、产品、开发对问题的认知,而不是开发和产品统一,业务又和产品统一从而产生分歧。明确分工:域模型需要明确定义来解决方方面面的问题,而针对这些问题则形成了团队分钟的理解。

2022-03-16 13:53:24 3754

原创 常用好用的Ideal插件

以下是我常用的一些Ideal插件1.Translation翻译插件,支持在线搜索,不要过分依赖哦。自动翻译注释 ctr+q2.Maven helper解决jar冲突、查看 maven依赖好利器3.POJO to Json前后端沟通神器,右键对象点击POJO to json 即复制出对象的json结构4.Free Mybatis plugin快速从代码跳转到mapper及从mapper返回代码。5.CamelCase大小写,下划线,驼峰,首字母大写等转化工具,相当好用。6.G

2022-01-13 21:50:45 544

原创 最强特殊字符、表情符号、Unicdeo字符串处理

最强特殊字符、表情符号、Unicdeo字符串处理处理效果:将特殊字符、表情符号 替换成空格Unicode编码字符串 转义重音字符原样保留 /** * @param: str * @description: 处理可能包含unicode的字符串 * 如"?\u0006 \u0000\u0019\u0000\"" 这样含有这样错误的unicode的字符串是可以存入数据库,并导致乱码。 * 入参 ?\u0006 \u0000\u0019\u0000\" 返回

2021-09-03 11:43:52 1747

原创 【日期时间处理】获取当前日期时间戳、日期格式字符串转时间戳、日期时间格式字符串转时间戳 JAVA8

如题:以下时间戳都是标准UTC时间不带时间 毫秒级代码如下 /** * @description: 获取当前日期 时间戳 * @return: java.lang.Long * @author: xk * @date: 2021/8/2 15:49 */ public static Long getNowDateTimestamp() { return LocalDate.now().atStartOfDay().toInstan

2021-08-05 16:40:33 1079

原创 Mybatis-plus 多表关联查询 怎么进行分页

如题:Mybatis-plus 多表关联查询 怎么进行分页上代码dao层实现类@AutowiredSettleOrderDOMapper mapper;public Page<MergeListVO> queryMergeList(QueryMergeListVO queryVo) { Page<MergeListVO> page = new Page<>(queryVo.getPageNum(), queryVo.getPageSize());

2021-08-05 16:15:26 388

原创 Mybatis-plus 根据条件多个动态or进行嵌套查询

如题,最近有个需求,or语句是动态的,并且需要嵌套与and一起, 需要查询数据sql结构如下select XXX from tb_xx where ((column1 =xxx and column2 ) or (column3 =xxx and ...)...)and id = xx and name = xxx ...括号里or语句是根据条件来显示不同的,我们这里可以使用 Mybatis-plus 的nested(Consumer<Param> consumer)做嵌套。C

2021-08-05 16:04:35 12353 2

原创 【简化代码】 Consumer接口实际应用

介绍源码:@FunctionalInterfacepublic interface Consumer<T> { /** * 抽象方法:传入一个指定泛型的参数,无返回值 */ void accept(T t); /** * 如同方法名字一样andThen,类似一种相加的功能(下面会举例说明) */ default Consumer<T> andThen(Consumer<? super T>

2021-07-11 21:41:50 468

原创 【简化代码】Supplier接口实际运用

介绍supplier接口是java.util.function下的一个用于返回对象的一个函数接口。源码如下:如源码所示它有几个特性主要用于返回结果支持函数编程调用get方法的时候才会创建对象返回(懒加载)实际使用场景我们在代码中,有时候会遇到一个通用方法,里面的有些逻辑在不同的地方有不同的实现,这时候入参可以使用Supplier,简化代码。栗子如下:public static void main(String[] args) { System.out.println(co

2021-07-11 18:54:25 901

转载 【日期处理】介绍 java 8 TemporalAdjuster 类型

介绍 java 8 TemporalAdjuster 类型本文我们介绍 java 8 TemporalAdjuster 类以及其使用场景。java 8 引入了新的日期、时间库————即java.time包,TemporalAdjuster 类是其中之一。简而言之,TemporalAdjuster 类是调整Temporal对象的策略。在使用TemporalAdjuster 类之前,我们先看看Temporal接口。Temporal 接口Temporal可以根据实际需求表示为日期、时间或两者组合。其几个实

2021-07-08 22:59:44 385

原创 【简化代码】 Java 泛型 提升抽象能力实际应用

Java 泛型 提升抽象能力看完这篇文章,你将获取到 更简单复用的代码 更强的抽象能力 。基础知识为什么使用泛型(使用场景)1.使程序员能够实现通用算法。2.在编译时进行更强的类型检查,提高代码的安全性。泛型类一个泛型类的定义与格式如下:类名<T1, T2, …, Tn> { /* … */ }/** * Generic version of the Box class. * @param <T> the type of the value being

2021-06-30 23:28:45 797

原创 性能优化=====线程池 产线实战优化

后续有空补充

2021-04-28 18:27:10 100

原创 性能优化=====Datasource 产线实战优化

后续有空补充

2021-04-28 18:25:21 122

原创 性能优化=====ShardingJDBC 产线实战优化

shardingJDBC优化

2021-04-28 18:22:35 217

原创 性能优化=====Fegin、Hystrix熔断 产线高并发 优化实战

背景前段时间,负责公司的一个服务的优化,发现了不少问题, 本文说一下Feign 和 Hystrix。在微服务的背景下,服务间的交互少不了HTTP。故性能优化中,比较重要一环就是HTTP交互,但若使用不当,就会导致HTTP耗时长,获取http连接出现大量等待超时,多次创建Httpclient导致OOM,长连接情况没有清除闲置连接导致NoHttpResponseException 等问题。而与其他服务交互中,也少不了熔断机制,来降级处理高并发的问题,但若使用不当,不仅没有使服务的性能更好,反而会

2021-04-28 18:21:15 845 1

原创 性能优化=====Arthas 代码追踪及使用

Arthas 是Alibaba开源的Java诊断工具 官网:https://arthas.aliyun.com/doc/当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

2021-04-28 18:12:39 1302

原创 性能优化=====Skywalking使用详解

先立下,后续有时间补充

2021-04-28 18:03:56 481

原创 性能优化=====Jmeter压测工具使用

Jmter压测工具使用当你进行性能优化的时候,此时我们需要优化前后对比效果。这时候就需要Jmter来进行压测,了解接口的TPS。下面介绍一下如何使用以及一些常用的知识。1.下载地址官网: https://jmeter.apache.org/download_jmeter.cgi百度云(含插件 推荐):https://pan.baidu.com/s/1xZCq4s6ZROlTVjOwCRGzfg 提取码: qfj62.使用教程 及结果分析网上有很多教程,我就不重复造轮子了,我推荐的博文https:

2021-04-28 17:52:02 97

原创 IntelliJ IDEA 2020.1 编译maven工程编译不通过提示找不到jar包,但是仓库里有包

IntelliJ IDEA 2020.1 编译maven工程编译不通过提示找不到jar包前段时间升级了一下ideal,发现ideal点击build都编译不通过,就连刚新建好的maven项目都会报jar包找不到,但是maven compile却能通过,仓库里面也有对应的包。估计是编辑器有问题,弄了半天,发现有两个办法解决。1.maven 编译运行这个不推荐,太慢了2.重写项目读取maven仓库地址(推荐)1.把maven的setting文件中的本地仓库地址注释掉2.重写项目读取maven仓库

2021-03-19 18:50:35 922

原创 Java序列化 Serializable 详解

1.什么是序列化序列化指堆内存中的java对象数据,通过某种方式把对存储到磁盘文件中,或者传递给其他网络节点(网络传输)。这个过程称为序列化,通常是指将数据结构或对象转化成二进制的过程.2.序列化使用场景由序列化的定义,我们就可以知道其使用场景 想把内存中的对象保存到一个文件中或者数据库中时候; 想用套接字在网络上传送对象的时候; 想通过RMI传输对象的时候总结: 序列化使用场景都是涉及到将对象转化成二进制,因为序列化保证了能够成功读取到保存的对象。3.如何实现序列化实现Seria

2020-10-13 23:25:05 331

原创 老生常谈的ConcurrentHashMap实现原理详解

Jdk 1.7 之前,ConcurrentHashMap 通过加锁保证线程安全,并引入锁分段机制以减小加锁的粒度,从而提升性能。Jdk 1.8 中的 ConcurrentHashMap 实现则引入了 CAS 机制以尽量避免加锁操作,虽然仍然有部分同步代码,不过锁的粒度相对于分段锁而言更加细粒度。另外一个重要的设计就是在结点个数达到阈值时会自动将链表转换成红黑树,从而进一步提升性能。存储结构设计在存储结构设计上,新的 ConcurrentHashMap 相对于之前看起来更加的简洁。如下图,在一个 Node

2020-10-12 08:42:06 1753 2

原创 Synchronize关键字详解

前言synchronized关键字,多线程并发编程最常用关键字作用对于synchronized关键字的作用,简单来说一句话就可以概况:在同一时刻,最多只有一个线程能执行该段代码。以串行化的方式执行代码,自然不存在线程安全问题。用法synchronized关键字的用法大致可以分为两类:对象锁和类锁。当然,Java中一切皆对象,类也是对象。所以这里的对象锁中的对象可以认为是狭义上的对象。对象锁:锁住的是一个对象,具体用法是利用synchronized关键字修饰非静态方法或者synchron

2020-10-11 16:32:17 1083

转载 synchronize底层实现原理以及相关的优化

首先来说下synchronize和Lock的区别:两者都是锁,用来控制并发冲突,区别在于Lock是个接口,提供的功能更加丰富,除了这个外,他们还有如下区别:synchronize自动释放锁,而Lock必须手动释放,并且代码中出现异常会导致unlock代码不执行,所以Lock一般在Finally中释放,而synchronize释放锁是由JVM自动执行的。Lock有共享锁的概念,所以可以设置读写锁提高效率,synchronize不能。(两者都可重入)Lock可以让线程在获取锁的过程中响应中断,而sync

2020-10-10 16:17:03 180

原创 如何获取通过window.open打开的父窗口的window对象

window.opener:opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用。当使用window.open()打开一个窗口,您可以使用此属性返回来自目标窗口源(父)窗口的详细信息。

2020-08-24 14:49:45 1566

原创 React前端渲染优化——父组件导致子组件重复渲染

本篇文章是针对父组件导致子组件重复渲染的优化方法一、 说明目前我们所使用 react 版本一般会有以下四种方式触发渲染 render,而其中通过父组件 render 会直接通知子组件也进行 render。二、一般的优化方式鉴于此种情况,如果完全不做控制下,父组件 render, 那么子组件一定会 render。真实 dom 的渲染 react 会在 diff 算法之后合计出最小改动,进行操作。但对于结构复杂页面,自顶向下,只是单纯 diff 也要花费很长的时间来处理 js 任务。再加上我们每个组件

2020-08-24 14:39:44 4324

原创 阻止鼠标点击默认事件与冒泡

阻止鼠标点击默认事件与冒泡e.preventDefault(); e.stopPropagation();

2020-08-24 14:31:59 558

原创 window.open 方式请求下载接口的时候,链接太长怎么办?

window.open 方式请求下载接口的时候,链接太长怎么办?解决方案:post from 表单方式提交this.post('/api/HCReportxx/exportHcReportxx',{"year":'2019',"data": JSON.stringify(param)});post =(url, params) =>{ // 创建form元素 var temp_form = document.createElement("form");

2020-08-24 14:25:10 711

原创 【简化代码】字符串与各种集合类的相互转化

工作中经常有逗号字符串转换成List、Map、Set集合类的需求,今天我来总结一下一些好的方法实现,以及可能会碰到的问题。OK,我们开始吧!

2020-07-01 10:32:19 5390

原创 利用Java反射机制实现动态方法

使用场景:项目中不同模块对某些数据的权限控制是不一样,此时可以利用Java的反射机制来实现动态的权限检测,减少代码的耦合性。主要代码: //targetNameMethodStr:XX.XX.XXX的路径地址 String targetNameMethod = targetNameMethodStr.substring(targetNameMet...

2019-06-18 15:34:51 647

原创 工具类之剔除Html标签 Java

如题: /** * 去除html格式,提取文字信息 */ public static String getContent(String content){ if(StringUtil.isNull(content)){ return ""; } String txtcontent = setTex...

2019-05-31 10:06:26 390

原创 #SqlServer、Oracle、MySQL不同语法3——查找数据库中表名包含某个关键字的表

如题,话不多说直接上代码。--Oracleselect table_name from user_tables where table_name like '%关键字%'--MySQLSELECT distinct TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME LIKE '%关键字%'--SqlServer...

2019-03-21 09:44:34 251

原创 #多线程学习——ThreadPoolExecutor之不允许使用Executors创建

在阿里巴巴开发手册的并发处理那章提到线程池不允许使用Executor来创建,要用ThreadPoolExecutor的方式来创建本文就来分析一下为什么不能使用Executor来创建。其实手册下面说明已经说了1)FixedThreadPool 和 SingleThreadPool:允许的请求队列长度为 Integer.MAX_VALUE,可能会堆积大量的请求,从而导致 OOM。2)Cach...

2019-03-20 17:45:59 462 1

原创 #SqlServer、Oracle、MySQL不同语法 2 ——将排序字段为null的排到后面、Order by详解

1.将排序字段为null的排到后面之前在网上查了一下,发现很多文章介绍的都是这三种数据库使用不同的语法解决,比较麻烦。下面的介绍的是一种通用的,较为简单,故记录一下。1.1使用场景:当需要将字段为null排到后面时所使用。1.2代码实例select name,排序字段from table1where id = 106 order by case when 排序字段 is null...

2019-03-11 11:59:59 336

原创 #SqlServer、Oracle、MySQL不同语法 1——更新多个字段、update select 用法

1.更新多个字段SqlServer写法alter table table1 add name_account varchar(255) null,name_project varchar(255) nullOracle写法alter table table1 add (name_account varchar2(255) null,name_project varchar...

2019-03-08 16:59:23 5292

standard-1.1.2.jar

standard-1.1.2.jar

2017-08-02

jstl-1.2.jar

jstl-1.2.jar

2017-08-02

空空如也

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

TA关注的人

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