自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2022JAVA面试题附答案(长期更新)

该博客囊括了Java面试中95%的面试题,不包含算法题。如有遗漏或错误,请立刻联系我,十分感谢。

2018-05-17 22:53:57 143900 40

原创 一个通用的参数校验的工具类

对于请求入参的校验常用方法都是一堆if...else...来进行判空,长度校验。不仅代码又多又长,阅读性极差。本文由博主自己结合hibernate-validate框架,封装的小工具,进行优雅的参数校验。

2022-10-14 10:19:08 852 1

原创 SpringBoot 打包异常:Unable to find main class

SpringBoot 打包异常:Unable to find main class

2022-07-11 15:29:28 645

原创 如何快速解决 Maven 依赖冲突(MavenHelper)

一、使用 IDEA 打开项目二、打开设置安装插件 MavenHelper三、安装完后点开 pom 文件,发现左下角有新的按钮四、点击按钮 UI 弹出页面,可以清晰的看见maven 的依赖和冲突,也可以看到依赖树...

2022-03-30 16:05:29 1263 1

原创 通过 Nginx 配置解决 CORS跨域问题

通过 Nginx 定制化配置解决 CORS跨域问题

2022-02-09 10:40:29 8263 1

原创 Gitlab 配置 SSH-Key

Gitlab 配置 SSH-Key

2021-12-24 14:03:23 18591

原创 MySQL面试之一条SQL是如何执行的

一 MySQL 基础架构分析1.1 MySQL 基本架构概览下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。先简单介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图,在 1.2 节中会详细介绍到这些组件的作用。**连接器:**身份认证和权限相关(登录 MySQL 的时候)。 **查询缓存:**执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。 分析器:没有命中缓存的话,SQL.

2021-09-09 17:10:40 259

原创 MySQL面试之三大日志详解

前言MySQL日志 主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。其中,比较重要的还要属二进制日志binlog(归档日志)和事务日志redo log(重做日志)和undo log(回滚日志)。今天就来聊聊redo log(重做日志)、binlog(归档日志)、两阶段提交、undo log(回滚日志)。redo logredo log(重做日志)是InnoDB存储引擎独有的,它让MySQL拥有了崩溃恢复能力。比如MySQL实例挂了或宕机了,重启时,...

2021-09-09 15:26:42 433

原创 MySQL面试题之InnoDB对MVCC的实现

一致性非锁定读和锁定读一致性非锁定读对于一致性非锁定读(Consistent Nonlocking Reads)的实现,通常做法是加一个版本号或者时间戳字段,在更新数据的同时版本号 + 1 或者更新时间戳。查询时,将当前可见的版本号与对应记录的版本号进行比对,如果记录的版本小于可见版本,则表示该记录可见在InnoDB存储引擎中,多版本控制 (multi versioning)就是对非锁定读的实现。如果读取的行正在执行DELETE或UPDATE操作,这时读取操作不会去等待行上锁的...

2021-09-09 14:36:39 454

原创 项目启动报错: This is very likely to create a memory leak. Stack trace of thread 解决方案

问题发现The web application [ROOT] appears to have started a thread named [UIC_STATISTIC_THREAD] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread.这个是一个Spring项目启动报的错. 内存泄漏异常.解决方案:跳转Java项目启动内存:-Xms512m ...

2021-07-02 17:34:07 25313

原创 IDEA启动项目页面乱码

1. 原因工程编译的时候, 某一个或者多个文件的编码格式不正确导致.2. 解决方法打开设置, 搜索Encoding,如下图, 将所有的文件和工程统一编码格式即可完成修正

2021-06-28 11:05:12 1018

原创 CountDownLatch的使用

1. 他是什么?A synchronization aid that allows one or more threads to wait untila set of operations being performed in other threads completes.

2021-06-17 15:45:32 2332

原创 MYSQL扣除余额,扣除库存的SQL

1. 需求:扣除余额,或者库存(一般先扣缓存,再扣库存, 库存扣除失败,回滚缓存,redis的incr语句),满足高并发需求2. 设计SQL示例sql, 这边以扣除余额为例(无缓存),mysql会根据id进行行锁处理,高并发下没有问题 update xxx_account set balance = balance - #{chargeCost} , day_balance = day_balance - #{ch

2021-05-19 16:10:55 1986

原创 Java记录一次百万级别数据扫表统计的任务

一. 需求:统计近200万商家数据, 每日通过查询计费系统更新其余额二. 技术栈:抛开分布式定时任务系统Elastic-Job之外, 我们先优先把单系统极限优化挖掘出来, 由于博主接手的是14年的老项目, 本地甚至都无法启动,所以不尝试用高级玩法(数据分片, 消息中间件).1. Java1.72. Mysql数据库5.7三. 思路分析:流程如下1: 扫表几百万数据表的扫表面临的问题很简单, 当我们分页查询到百万级别以上(甚至几十万)的时候limit 800000, 1

2020-11-24 10:53:47 2658

原创 Mysql百万数据扫表优化

一、大数据量分页查询方法:1、直接使用数据库提供的SQL语句  语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N  适应场景: 适用于数据量较少的情况(元组百/千级)  原因/缺点: 全表扫描,速度会很慢,且有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3),Limit限制的是从结果集的M位置处取出N条输出,其余抛弃。//是用limit函数//取前5条数据select * from table_nam.

2020-11-24 10:11:49 2055

原创 Java生成导出Word

先给出官网链接,方便各位博友深入了解http://deepoove.com/poi-tl/里面有demo和详解,我这边就不说了

2020-11-06 18:35:31 1134

原创 Java下载工具类

1. 本工具类包括预览, 打包下载, 下载 package com.zjrc.epidemic.util;import com.zjrc.epidemic.fastdfs.FileInfo;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.util.CollectionUtils;import org.springframework.web.context.request.

2020-11-06 14:56:39 785

原创 AES加密工具类AESUtil

本文工具类针对的是Java环境下, AES对称加密的工具类, 包括加密和解密package com.alicom.flow.util;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64;/** * * @author zhouzhou * 2020-9-29 15:27:42 * */public clas

2020-10-15 14:32:45 4460 1

原创 史上最全的日期工具类DataUtil(长期更新)

直接放代码了,里面的方法都有注释package com.zjrc.epidemic.utils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.context.i18n.LocaleContextHolder;import java.math.BigDecimal;import java.sql.Time;impor

2020-10-15 10:59:41 1755

原创 Elasticsearch(十三) ElasticSearch搜索附近的人

需求: 通过指定点搜索附近的人 , 要求可以过滤年龄, 结果按照距离进行排序, 并且展示她/他距离你多远本文参考:es官网文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/sorting-by-distance.htmlSpring官网文档:https://docs.spring.io/spring-data/elasticsearch/docs/4.0.3.RELEASE/reference/html/#new-f..

2020-08-21 10:23:06 2100 3

原创 Elasticsearch(二) Elasticsearch中的Mapping映射, 更新mapping和添加mapping

一. 核心简单字段类型Elasticsearch 支持如下简单域类型:字符串:string 整数 :byte,short,integer,long 浮点数:float,double 布尔型:boolean 日期:date二. 复杂类型:多值字段很有可能,我们希望tag域包含多个标签。我们可以以数组(List)的形式索引标签:{ "tag": [ "search", "nosql" ]}Java表示 List<String> tag...

2020-08-20 16:55:04 1438

原创 Elasticsearch(二) Elasticsearch简介及核心概念倒排索引

一. 我到底能够使用 Elasticsearch 做什么?通过 Elasticsearch,您能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标),搜索方式随心而变。先从一个简单的问题出发,试试看能够从中发现些什么。 作为一个分布式搜索服务1. 它可以进行快速进行全文搜索2. 可扩展性: 支持PB级别数据的存储,以及成百上千的集群3. 大数据处理, 数十亿行日志的聚合处理4. 通过相关度(_score)对所有内容搜索基于各项元素(从词频或新近度到热门度等)对搜索.

2020-08-20 16:37:22 520

原创 ElasticSearch(七)高级排序(多级排序, 多值字段排序)

排序为了按照相关性来排序,需要将相关性表示为一个数值。在 Elasticsearch 中,相关性得分(_score)由一个浮点数进行表示,并在搜索结果中通过_score参数返回, 默认排序是_score降序。注: filter不参与评分.1. 按照字段排序(评分机制取消)只有字段排序会使评分机制取消.GET /_search{ "query" : { "bool" : { "filter" : { "term" : { "use...

2020-08-17 16:44:31 28717 5

原创 ElasticSearch(六)组合多查询(must, should, must_not, bool, filter)

组合多查询现实的查询需求从来都没有那么简单;它们需要在多个字段上查询多种多样的文本,并且根据一系列的标准来过滤。为了构建类似的高级查询,你需要一种能够将多查询组合成单一查询的查询方法。你可以用bool查询来实现你的需求。这种查询将多查询组合在一起,成为用户自己想要的布尔查询(Bool)。它接收以下参数:1.must文档必须匹配这些条件才能被包含进来。相当于sql中的 and2.must_not文档必须不匹配这些条件才能被包含进来。相当于sql中的 not3...

2020-08-17 16:17:52 25749 2

原创 ElasticSearch(五)常用查询关键字解读(match, term, range,terms)

本博文参考了官方文档:https://www.elastic.co/guide/cn/index.html虽然 Elasticsearch 自带了很多的查询,但经常用到的也就那么几个。1. match 查询无论你在任何字段上进行的是全文搜索还是精确查询,match查询是你可用的标准查询。如果你在一个全文字段上使用match查询,在执行查询前,它将用正确的分析器去分析查询字符串:{ "match": { "tweet": "About Search" }}Java代码...

2020-08-14 14:42:21 5689

原创 SpringBoot集成RocketMQ(附带集成工具类)

1. pom文件引入rocketmq的client端依赖 <!--rocketmq--> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.3.0</ver

2020-08-11 10:05:56 3511

转载 Docker安装RocketMQ

https://blog.csdn.net/W_317/article/details/104556265

2020-08-11 09:58:47 1752

原创 ElasticSearch(八)ElasticSearch与Mysql同步数据解决方案

ES数据和数据库数据如何同步整合?1. canel的通道是利用mysql的bin_log同步2. 通过消息队列同步,优势失败重试机制保证100%同步成功本文介绍通过RocketMq消息队列同步:首先是架构思路图:CRUD操作与我们的平时一样,但是在CRUD操作后我们会向RocketMq服务器事先定义好的Topic发送消息, 注意:Topic是同一个, 根据不同Tag来判断是什么类型的操作(新增, 删除, 更新), 废话不多说直接看代码github地址:1. 准备RocketM

2020-08-10 18:13:57 2581 3

原创 ElasticSearch(三)ElasticSearch7.8.0集成Springboot

本文ES版本为7.8.0 兼容很多新版本,代码都经过测试, 无坑, 大家放心食用1. 准备环境工作安装ES环境, 安装IK分词器,见博文:https://rourou.blog.csdn.net/article/details/1010614082.MAVEN依赖由于es各个版本变化很大,所以在选择依赖的时候要尤为注意!!!我们可以通过spring的官方网站来进行查询版本对应的信息https://docs.spring.io/spring-data/elasticsearch/d..

2020-08-03 18:20:46 6503 5

原创 ElasticSearch(四)spring-data-elasticsearch @Field注解无效,最完美解决方案

前言我看了一大堆博客和资料大多是说这个spring的bug, 然后通过一个.json的配置文件去加载,我也是真的笑了, 本来注解就是方便开发,取消配置文件的功能, 结果解决方案却是本末倒置, 这里我奉献出最正确的解决方案一. 准备实例代码这是实体类代码,及其注解package com.gupao.springbootdemo.bean;import lombok.Data;import org.springframework.data.annotation.Id;import org

2020-07-31 11:13:53 17072 9

原创 ElasticSearch(二)Docker安装ElasticSearch中的IK分词器

docker 安装ElasticSearch传送门1. 确认ES版本,去github上下载正确版本的IK分词器github地址:https://github.com/medcl/elasticsearch-analysis-ik然后通过下载页.下载zip包https://github.com/medcl/elasticsearch-analysis-ik/releases2. 通过docker命令将zip包复制到ES容器指定位置docker cp /tmp/elast...

2020-07-28 10:09:47 658

原创 SpringBoot整合Docker一键部署

1.准备工作一个springboot工程 拥有docker环境的linux服务器2.编写DockerFileFROM openjdk:8-jre-alpineENV SERVICE_NAME springboot-demoENV OPS " -server -Xms256m -Xmx256m -Xss256k"COPY ${SERVICE_NAME}-0.0.1-SNAPSHOT.jar /${SERVICE_NAME}.jarENTRYPOINT java -jar ${OP.

2020-07-24 14:17:52 904

原创 Springboot整合Alibaba Cloud Toolkit一键远程部署

1. 开发环境,IDEA,安装Alibaba Cloud Toolkit在Plugins中搜索Alibaba Cloud Toolkit, 下载并且安装2. 远程服务器准备一台远程服务器, 这台服务器必须安装java环境.3.配置工具配置部署方式 如图配置好你的配置信息其中ip就是我们目标部署的服务器, 可以设置多台Target Directory 是将打好的jar包上传到服务器那个位置After Deploy: 则是上传jar包后, 服务器执行的命令点击保存,即

2020-07-24 11:28:24 1059

原创 最新React使用 http-proxy-middleware解决多跨域问题(完美篇)

1. 安装 http-proxy-middlewarenpm install http-proxy-middleware#顺便安装一下 axios ,不用也可以,用fetch也一样。npm install axios2. src目录下创建一个 setupProxy.js文件里面的'api'代表target的域名url代理后的urlconst { createProxyMiddleware } = require('http-proxy-middleware');module.exp

2020-07-10 18:00:25 16502 9

原创 ThreadLocal(三) 线程上下文实战

场景: 某个复杂长链路请求, 例如下单, 需要多组件方法参与,但是对于各种参数聚合, 耦合度很高对于二次开发不方便解决思路: 利用 ThreadLocal 线程变量来完成, 以后每次改造只需要改造,或者向 ThreadLocal 中增加自己的参数即可,注意:禁止参与多线程!!!否则会导致参数丢失!!!!! 注意每个线程必须执行 destroy 操作!!! 建议在入口处进行线程变量初始化和销毁1. 创建业务上下文类package net.xinhuamm.converge.model.

2020-06-16 21:57:19 712

原创 使用 AOP 进行切面编程(打印日志)

场景 : 针对 controller 层 使用 AOP 进行日志打印思路: 使用 aop 进行切面编程, 针对 controller 层所有的类,进行方法切面, 打印日志1. 先在 pom.xml 文件中引入 aop 的依赖 <!-- aop --> <dependency> <groupId>org.springframework.boot</groupId> .

2020-06-16 21:09:26 1380

原创 解决Jenkins 安装插件重启后, 部分项目或 Job丢失

1. 定位你安装的插件2. 进入/root/.jenkins 目录下的 plugins 目录 删除你安装的插件3. 重启问题解决

2020-05-30 11:44:24 6703

转载 mysql面试题《六》覆盖索引与回表

前言:select id,name where name='shenjian'select id,name,sexwhere name='shenjian'多查询了一个属性,为何检索过程完全不同?什么是回表查询? 什么是索引覆盖? 如何实现索引覆盖? 哪些场景,可以利用索引覆盖来优化SQL?这些,这是今天要分享的内容。画外音:本文试验基于MySQL5.6-InnoDB...

2020-05-03 22:10:27 1016 1

转载 ElasticSearch(九) ElasticSearch使用教程之_score(评分)介绍

https://blog.csdn.net/paditang/article/details/79098830个人强烈推荐这篇文章, 讲的特别好

2020-04-08 19:39:06 1164

原创 ElasticSearch(十)SpringBoot集成ElasticSearch 复杂分页查询以及高亮显示,

一、帮助文档ES 官方文档https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-request-highlighting.htmlsample:https://es.xiaoleilu.com/010_Intro/30_Tutorial_Search.html二、业务流程:...

2020-04-08 19:34:14 3079 1

pandoc-2.9.2.1-macOS.pkg.zip

Pandoc,它可以将文档在 Markdown、LaTeX、reStructuredText、HTML、Word docx 等多种标记格式之间相互转换. 现在直接贡献给大家

2020-05-26

maintain.zip

升级维护H5页面用于Ngnix (二) ngnix根据url配置不同的错误维护页面博文地址.

2019-09-02

长途电话区号映射sql

中国标准的长途电话区号映射sql,中国标准的长途电话区号映射sql.

2018-09-18

java根证书

java根证书

2018-08-29

MySQL 5.5.49(免费)

MySql 5.5.49免费版, 包含安装图解, 以及一些sql语句, 希望能帮助到各位

2018-08-10

空空如也

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

TA关注的人

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