自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (5)
  • 收藏
  • 关注

原创 springboot日志配置文件log4j2.xml

<?xml version="1.0" encoding="UTF-8"?><Configuration status="WARN" monitorInterval="0"> <!-- 配置公共的有可能调整的变量 --> <Properties> <!--应用名称--> <property name="APP.NAME">springboot-helloword</proper

2024-03-19 14:37:32 349

原创 springboot单体项目链路日志跟踪及接口耗时

filter过滤器实现日志链路id,接口耗时

2024-03-11 16:18:48 496

原创 【无标题】

1、添加nodepad++ 右键快捷键,适用于非安装包。

2024-03-05 11:15:34 344 1

原创 虚拟机内存分区简版

java虚拟机内部简单介绍

2022-09-23 11:20:04 169 1

原创 Java 线程池之 四个拒绝策略

线程池的拒绝策略

2022-08-30 10:35:25 233

原创 nexus离线私服maven-metadata.xml缺失导致jar包拉取失败

nexus私服上传jar

2022-06-18 10:03:40 1672 1

原创 Linux 开启新增 Swap分区

本篇文章介绍的是如何在Linux系统过程中新增swap分区,我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?我们在装完Linux系统之后,建立Swap分区有两种方法:1》、新建磁盘分区作为swap分区2》、用文件作为swap分区这两种方法都必须用root权限,操作过程中要小心谨慎1、停止所有swap分区swapoff -a2、创建一个swap文件。cd /varsudo mkdir swapdd if=/d

2022-04-03 18:52:09 2663

原创 Elasticsearch索引原理

介绍Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎. 当然 Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。 实时分析的分布式搜索引擎。 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。基本概念先说Elasticsearch的文

2021-12-03 17:36:32 149

原创 SpringBoot实现参数解析基于注解

我们都知道SpringMvc的Controller的方法上可以接收各种各样的参数,比如HttpServletRequest或HttpServletResponse,各种注解@RequestParam、@RequestHeader、@RequestBody、@PathVariable、@ModelAttribute,这些参数是从哪里获取的?这些参数都是由不同的参数解析器为我们解析出来的,可以解析类也可以解析带注解的类我们可以利用解析器解析自定义的参数(类、注解),在我们需要的传入的cont...

2021-11-12 10:44:58 784

原创 ElasticSearch多字段分组查询

private String final SPLIT= ",";public List<Option> errorCount() { List<Option> result = new ArrayList<Option>(); SearchRequest searchRequest = new SearchRequest(INDEX_NAME); searchRequest.types(SEARCH_TYPE); SearchSo..

2021-07-06 16:24:21 1562

转载 ElasticSearch的Script逻辑查询

————————————————版权声明:本文为CSDN博主「CTO修炼手册」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/Prepared/article/details/102893852在使用 ES 进行统计的时候,经常会用到查询某个小时的统计数据,比如统计每个小时的数据;比如计算早晚高峰的数据。这些场景都可以使用 script 进行查询、统计。ES 语句{"query": { "boo

2021-07-06 15:50:33 4584

原创 ElasticSearch按时间聚合统计

查询语句,统计每天的浏览量--聚合条件为DateHistogramAggregationBuilder dateHistogramAgg = AggregationBuilders.dateHistogram("groupDate").field("create_time").dateHistogramInterval(DateHistogramInterval.DAY).offset("-8h").minDocCount(0);为什么offset("-8h"),经排查发现es在做时区聚合.

2021-05-22 16:30:38 2959 2

转载 转载缓存击穿,穿透和雪崩

作者:每天进步一点点yes来源:CSDN原文:https://blog.csdn.net/kongtiao5/article/details/82771694版权声明:本文为博主原创文章,转载请附上博文链接!一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。二、缓存穿透描述: 缓存穿透是指缓存和数据库中都没有的数据...

2021-04-26 18:06:33 55

转载 JVM垃圾回收

垃圾回收,就是通过垃圾收集器把内存中没用的对象清理掉。垃圾回收涉及到的内容有:1、判断对象是否已死;2、选择垃圾收集算法;3、选择垃圾收集的时间;4、选择适当的垃圾收集器清理垃圾(已死的对象)。1、判断对象是否已死判断对象是否已死就是找出哪些对象是已经死掉的,以后不会再用到的,就像地上有废纸、饮料瓶和百元大钞,扫地前要先判断出地上废纸和饮料瓶是垃圾,百元大钞不是垃圾。判断对象是否已死有引用计数算法和可达性分析算法。(1)引用计数算法给每一个对象添加一个引用计数器,每当有一个地方引用它时,计数

2021-04-25 15:38:40 60

转载 JVM内存溢出

1、堆内存溢出堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证GC Roots到对象之间有可达路径来避免垃圾收集回收机制清除这些对象,当这些对象所占空间超过最大堆容量时,就会产生OutOfMemoryError的异常。堆内存异常示例如下:/** * 设置最大堆最小堆 : -Xms20m -Xms20m * 运行时,不断在堆中创建OOMObject类的实例对象,且while执行结束之前。 * GC Roots(代码中得OOMObjectList)到对象(每一个OOMObject对

2021-04-23 16:29:02 234

转载 JVM内存区域

Java虚拟机在运行时,会把内存空间分为若干个区域:方法区、堆内存、虚拟机栈、本地方法栈和程序计数器。1.方法区方法区主要用于存储虚拟机加载的类信息、常量、静态变量,以及编译器编译后的代码等数据。在jdk1.7及其之前,方法区是堆的一个“逻辑部分”(一片连续的堆空间),但为了与堆做区分,方法区还有个名字叫“非堆”,也有人用“永久代”(HotSpot对方法区的实现方法)来表示方法区。从jdk1.7已经开始准备“去永久代”的规划,jdk1.7的HotSpot中,已经把原本放在方法区中的静态.

2021-04-23 09:57:29 58

原创 在java中String类为什么要设计成final?

大白话解释就是:String很多实用的特性,比如说“不可变性”,是工程师精心设计的艺术品!艺术品易碎!用final就是拒绝继承,防止世界被熊孩子破坏,维护世界和平!1. 什么是不可变?String不可变很简单,如下图,给一个已有字符串"abcd"第二次赋值成"abcedl",不是在原内存地址上修改数据,而是重新指向一个新对象,新地址。2. String为什么不可变?翻开JDK源码,类起手前三行,是这样写的:public final class String implements j

2021-04-15 18:11:34 124

原创 HandlerMethodArgumentResolver用于注解获取当前登录用户

目录一、最原始直接二、AOP三、拦截器+方法参数解析器3.1 自定义权限拦截器3.2 自定义参数注解3.3 自定义方法参数解析器3.4 配置MVC环境:SpringBoot 2.0.4.RELEASE 需求:很多Controller方法,刚进来要先获取当前登录用户的信息,以便做后续的用户相关操作。 准备工作:前端每次请求都传token,后端封装一方法tokenUtils.getUserByToken(token),根据token解析得到currentUserInf...

2021-04-08 15:35:22 307

原创 AOP实现日志记录

1、自定义的注解import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)//表明注解生效时期 @Target(ElementType.METHOD)//表面注解使用范围

2021-03-12 15:55:09 161

原创 记录表的增删改查日志

1、需要用到的注解、主要用于实体类属性上@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.FIELD})public @interface DomainLog { String desc() default ""; boolean recursion() default false; Class<? extends Enum<?>>[] enumClass() default {};

2021-03-12 15:22:15 400

原创 EasyExcel导入小数转BigDecimal精度问题

EasyExcel使用说明,点击链接https://www.yuque.com/easyexcel/doc/read转Double也可参考该博客最近使用easyexcel时碰到一个这样的问题,读取excel时出现了小数点精度问题。例如,0.137这个值,使用easyexcel解析后得到的Double对象就变成了0.13700000000000001,5.1,变成5.0999999999999996。原excel中一条数据,见下图体积商品名称 长(cm) 宽(cm) 高(cm

2021-02-26 11:18:17 11129 2

原创 Java对象与XML相互导入导出

最近在项目中一直出现Java对象和XML之间的相互转换,一开始由于项目很庞大,我又是临时调度过去,导致在按照项目组长的要求进行写代码的同时,总是在这块云里雾里,最近才慢慢开始搞清楚项目中具体的使用缘由。但是项目中封装的代码总是很庞大,因为要考虑太多的东西,而对于此,我只能通过小的Demo来说明,其实在项目中用到很多插件,轻巧,灵便,封装很好使用,但这里我讲解的是JAXB(JavaArchitecture for XML Binding)。 JAXB(Java Architecture for XM...

2020-12-23 17:29:01 397

原创 使用vlidator校验器校验

spring boot 虽然集成了 valid 验证,但是只是针对单个参数,不能是整个类,这时就可以使用 hibernate 的 validator 验证器,而且有分组的功能,例如:在注册时要验证 A 类三个字段,但在登录时只需要验证 A 类的两个字段,如果要另外创建一个 VO 类就很没必要,这时就可以使用分组来解决创建一个验证的工具类package io.xiongdi.common.validator;import io.xiongdi.common.exception.XDExce..

2020-12-02 17:47:23 213

原创 AOP 实现mysql分布式锁

在web项目开发过程中,经常会遇到分布式资源控制的场景,通过加锁从而保证资源访问的互斥性。本文主要介绍在没有redis情况下通过mysql进行分布式锁的实现。场景: 线程A与线程B执行前需要判断资源R的状态,当R的状态为1时,则可以执行,当R的状态为0时,则不容许执行,且同一时刻只容许一个线程执行。线程执行时资源R状态置0,线程执行结束后R状态重新置1。 上述场景中,若不对资源R进行互斥访问,则可能出现A、B线程同时访问资源R时且发现资源状态为1,从而都启动执...

2020-10-14 18:28:30 165

原创 jvm参数设置

测试堆空间常用的jvm参数:-XX:+PrintFlagsInitial 查看所有参数的默认初始值-XX:+PrintFlagsFinal 查看所有参数的初始值(可能会存在修改,不再是初始值)具体查看某个参数的指令 jps:查看当前运行中的进程 jinfo -flag SurvivorRatio 进程id-Xms : 初始堆空间内存 (默认为物理内存的1/64)-Xmx : 最大堆空间内存 (默认为物理内存的1/4)-Xmn : 设置新生代的大小 (初始值及最大值)-XX:New

2020-09-07 15:42:51 103

原创 手写阻塞队列

自己实现阻塞队列的话可以采用Object下的wait和notify方法,也可以使用Lock锁提供的Condition来实现,本文就是自己手撸的一个简单的阻塞队列。最近面试京东时遇到让实现阻塞队列的思路,希望本文能对大家有帮助。个人手撸如有错误还请批评指正。public class BoundedBlockQueue { // 队列容器 private LinkedList<Object> buffer; private int maxSize;...

2020-09-03 15:25:01 226

转载 Java 最常见的 200+ 面试题:面试必备

这份面试清单是我从 2015 年做 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘我在 Java 技术栈中的技术盲点,然后修复和完善它,以此来提高自己的技术水平。虽然我从 2009 年就开始参加编程工作了,但依旧觉得还有很多东西要学,当然学习的过程也给我带来了很多成就感,这些成就感也推动我学习更多的技术知识。聊回面试题这件事,这份面试清单原本是我们公司内部使用的,可到后来有很多朋友在微信上联系到我,让我帮他们找一些面试方面的资料,而且这些关系也不太好拒绝,一呢,是因为

2020-09-01 16:21:19 118

原创 数据库常用的事务隔离级别都有哪些?都是什么原理?

什么是事务隔离?任何支持事务的数据库,都必须具备四个特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),也就是我们常说的事务ACID,这样才能保证事务((Transaction)中数据的正确性。而事务的隔离性就是指,多个并发的事务同时访问一个数据库时,一个事务不应该被另一个事务所干扰,每个并发的事务间要相互进行隔离。如果没有事务隔离,会出现什么样的情况呢?假设我们现在有这样一张表(T),里面记录了很多

2020-08-10 15:22:03 195

原创 win7安装docker问题总结

问题一:在上面你会发现这么句话“error in driver during machine creation:This computer doesn’t have VT-X/AMD-v enabled .Enabling it in the BIOS is mandatory”意思就是说你的虚拟机没有打开,这时手动打开虚拟机,点开显示会发现下面问题:这时当使用VirtualBox启动虚拟机时提醒“虚拟电脑控制台 - 错误”,说明你电脑虚拟化技术处于被禁用状态。这时就要启动BIOS的虚

2020-07-23 12:57:04 338

原创 云服务AppId或AppKey和AppSecret生成策略(对外接口使用)

一、App key和App Secret App key简称API接口验证序号,是用于验证API接入合法性的。接入哪个网站的API接口,就需要这个网站允许才能够接入,如果简单比喻的话:可以理解成是登陆网站的用户名。App Secret简称API接口密钥,是跟App Key配套使用的,可以简单理解成是密码。App Key 和 App Secret 配合在一起,通过其他网站的协议要求,就可以接入API接口调用或使用API提供的各种功能和数据。比如淘宝联盟的API接口,就是淘宝客网站开发的必...

2020-07-20 15:34:36 4295 1

原创 java下划线(数据库字段)与驼峰命名互转

方式一:public class Tool { private static Pattern linePattern = Pattern.compile("_(\\w)"); /** 下划线转驼峰 */ public static String lineToHump(String str) { str = str.toLowerCase(); Matcher matcher = linePattern.matcher(str); StringBuffer sb = new Str

2020-06-02 10:30:31 2570

原创 Java读excel(xlsx和xls)两种类型

导入的pom:<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.16</version></dependency><dep...

2020-01-21 10:33:17 438 2

原创 Data,DataTime,Timestamp相互转换

DateTime转为String字符串,输出2020-01-10 10:17:34DateTime endTime = DateTime.now().minusSeconds(10);String s = endTime.toString("yyyy-MM-dd HH:mm:ss");System.out.println(s);DateTime转为字符串,再转时间戳,输出2020-0...

2020-01-10 10:19:45 640

原创 Linux平台安装MongoDB

下载地址:http://downloads.mongodb.org/linux/mongodb-linux-x86_64-3.6.15.tgz选择Linux平台的下载链接一、安装步骤1、下载安装# 1、下载wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.9.tgz# 2、解压tar -zxvf...

2019-11-09 21:12:26 112

原创 kibana的安装

1、下载地址wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz2、解压tar -xvf kibana-6.4.0-linux-x86_64.tar.gzmv kibana-6.4.0-linux-x86_64 /usr/local/kibana3、修改配置文...

2019-11-09 12:40:12 162

原创 Linux查看log日志三种命令

第一种:查看实时变化的日志(比较吃内存)最常用的:tail -f filename (默认最后10行,相当于增加参数 -n 10)Ctrl+c 是退出tail命令其他情况:tail -n 20 filename (显示filename最后20行)tail -n +5filename (从第5行开始显示文件)第二种:搜索关键字附近的日志最常用的:...

2019-10-31 11:53:38 9476

原创 springboot集成activemq发送实体类

import org.apache.activemq.ActiveMQConnectionFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context...

2019-10-28 15:32:01 859

转载 Kafka动态增加Topic的副本

一、kafka的副本机制 由于Producer和Consumer都只会与Leader角色的分区副本相连,所以kafka需要以集群的组织形式提供主题下的消息高可用。kafka支持主备复制,所以消息具备高可用和持久性。 一个分区可以有多个副本,这些副本保存在不同的broker上。每个分区的副本中都会有一个作为Leader。当一个broker失败时,Leader在这台br...

2019-09-30 10:50:00 726

原创 kafka如何彻底删除topic及数据

前言:删除kafka topic及其数据,严格来说并不是很难的操作。但是,往往给kafka 使用者带来诸多问题。项目组之前接触过多个开发者,发现都会偶然出现无法彻底删除kafka的情况。本文总结多个删除kafka topic的应用场景,总结一套删除kafka topic的标准操作方法。step1:如果需要被删除topic 此时正在被程序 produce和consume,则这些生产和消费...

2019-09-26 09:54:22 553

原创 SSM框架SpringMVC@Scheduled注解简单实现定时任务

一、在Springmvc的xml头中加入如下:xmlns:task="http://www.springframework.org/schema/task"http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd">二、中...

2019-09-18 10:28:01 268

dubbo-admin-2.6.war

dubbo-admin 2.6.3.war包,本人已经正常启动,只需要放入tomcat中,修改dubbo.properties的配置

2019-07-27

dubbo-dubbo-2.6.3.zip

dubbo-admin 2.6.3.war包,本人已经正常启动,只需要放入tomcat中,修改dubbo.properties的配置

2019-07-27

springboot集成mybatis.rar

Spring Boot之springboot+mysql+mybatis源码,该代码适合初学者学习,可以直接导入IDEA,如运行有其他问题,请留言。。。。

2019-07-07

kibana-6.2.1-linux-x86_64.tar.gz

kibana-6.2.1-linux-x86_64.tar.gz 版本的下载,因每次下载需要很长时间,索性上传到csdn

2019-03-31

springboot+mysql+mybatis搭建源码

Spring Boot之springboot+mysql+mybatis源码,该代码适合初学者学习,可以直接导入IDEA,如运行有其他问题,请留言。。。。

2018-07-03

空空如也

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

TA关注的人

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