自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 JAVA 代码热加载方案

在日常开发中,我们需要经常修改 Java 代码,手动重启项目,查看修改后的效果。如果在项目小时,重启速度比较快,等待的时间是较短的。但是随着项目逐渐变大,重启的速度变慢,等待时间 1-2 min 是比较常见的。这样就导致我们开发效率降低,影响我们的下班时间,哈哈哈~那么是否有方式能够实现,在我们修改完 Java 代码之后,能够不重启项目呢?答案是有的,通过 代码热加载 的方式。实现方案有三种:spring-boot-devtools【不推荐】IDEA 自带 HowSwap 功能【推荐】

2023-05-06 16:12:17 339 1

原创 前后端代码review技术方案

code review 的一些管理方案

2023-05-06 16:01:53 648

原创 redisson实现redis分布式可重入锁

分布式锁之Redis实现在Java中,关于锁我想大家都很熟悉。在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题。通常,我们以synchronized 、Lock来使用它。但是Java中的锁,只能保证在同一个JVM进程内中执行。如果在分布式集群环境下呢?一、分布式锁分布式锁,是一种思想,它的实现方式有很多。比如,我们将沙滩当做分布式锁的组件,那么它看起来应该是这样的:加锁在沙滩上踩一脚,留下自己的脚印,就对应了加锁操作。其他进程或者线程,看到沙滩上已经有脚印,证明锁已被别人持有,则

2021-08-19 17:38:08 1297

原创 centos8 mysql 安装教程

查询是否安装过mysqlrpm -qa | grep -i mysql #或者rpm -qa | grep mysql卸载mysql、默认数据库#卸载mysql方式1:sudo yum -y remove mysql80-community-release-el7-3.noarch #卸载mysql方式2:rpm -e --nodeps mysql80-community-release-el7-3.noarch# 安装前查看是否有默认数据库,有需要删除rpm -qa | grep

2021-04-14 15:37:22 179

原创 SpringBoot操作ES进行各种高级查询

SpringBoot整合ES创建SpringBoot项目,导入 ES 6.2.1 的 RestClient 依赖和 ES 依赖。在项目中直接引用 es-starter 的话会报容器初始化异常错误,导致项目无法启动。如果有读者解决了这个问题,欢迎留言交流<!-- ES 客户端 --><dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elast

2021-03-11 16:08:25 532

原创 Spring Cloud Gateway-获取body踩坑实践

问题1:无法获取body内容问题原因分析在使用过程中碰到过滤器中获取的内容一直都是空的,尝试了网上的各种解析body内容的方法,但是得到结果都是一样,死活获取不到body数据,一度很崩溃。后来进行了各种尝试,最终发现使用不同的spring boot版本和spring cloud版本,对结果影响很大。方案1:降低版本springboot版本:2.0.5-RELEASEspringcloud版本:Finchley.RELEASE​使用以上的版本会报以下的错误:java.lang.IllegalSt

2021-03-02 19:10:03 4200

原创 雪花算法ID到前端之后精度丢失问题

一、问题描述数据库:CREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', ......);java实体类:@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@TableName("user")public class User { @ApiModelProperty(value = "用户Id") @TableId(valu

2021-01-26 16:43:10 610

原创 git flow版本管理

主要内容1.git flow 原理两个永久分支三个工作分支feature 分支Release 分支Hotfix 分支2.Git flow 插件和 jgitflow 插件1.git flow原理原理请参考:https://nvie.com/posts/a-successful-git-branching-model/1.1 两个永久分支master 分支:与生产的版本对应,所有生产的版本只能来自 master 分支。所以 master 分支要么与生产环境的版本一致,要么包含了已经完

2020-12-22 18:56:42 247

原创 内网穿透ngrok

下载exe文件官网登录获取token官网地址:https://ngrok.com/

2020-12-18 18:02:30 238 1

原创 jenkins部署配置

shell脚本#!/bin/sh## java env## you just need to change this param nameAPP_NAME=adleading-teacher-service-0.0.1SERVICE_DIR=/data/springboot-test/teacherSERVICE_NAME=$APP_NAMEJAR_NAME=$SERVICE_NAME\.jarPID=$SERVICE_NAME\.pidcd $SERVICE_DIR...

2020-12-04 10:21:39 93

原创 mysql-覆盖索引

什么叫做覆盖索引?在了解覆盖索引之前我们先大概了解一下什么是聚集索引(主键索引)和辅助索引(二级索引)聚集索引(主键索引):聚集索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的即为整张表的记录数据。聚集索引的叶子节点称为数据页,聚集索引的这个特性决定了索引组织表中的数据也是索引的一部分。辅助索引(二级索引):非主键索引,叶子节点=键值+书签。Innodb存储引擎的书签就是相应行数据的主键索引值。再来看看什么是覆盖索引,有下面三种理解:解释一: 就是select的数据列只用从索引中

2020-12-01 20:43:56 92

转载 阿里的面试官喜欢问哪些问题?

一、开场白简单的介绍一下自己的工作经历与职责,在校或者工作中主要的工作内容,主要负责的内容;(你的信息一清二白的写在简历上,这个主要为了缓解面试者的压力)介绍下自己最满意的,有技术亮点的项目或平台,重点介绍下自己负责那部分的技术细节;(主要考察应聘者对自己做过的事情是否有清晰的描述,判断做的事情的复杂度)二、Java多线程相关线程池的原理,为什么要创建线程池?创建线程池的方式;线程的生命周期,什么时候会出现僵死进程;说说线程安全问题,什么实现线程安全,如何实现线程安全;创建线程

2020-11-29 20:01:05 99

原创 线程池原理?为什么要用线程池?线程池的创建方式?

为什么要使用线程池在面向对象编程中,对象创建和销毁是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是对一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些"池化资源"技术产生的原因。比如大家所熟悉的数据库连接池就是遵循这一思想而产生的,下面将介绍的线程池技术同样符合这一思想。多线程技术主要解决处理

2020-11-29 19:52:01 392

原创 分布式事务锁的实现

一, 基于数据库实现分布式锁1. 悲观锁利用select … where … for update 排他锁注意: 其他附加功能与实现一基本一致,这里需要注意的是“where name=lock ”,name字段必须要走索引,否则会锁表。有些情况下,比如表不大,mysql优化器会不走这个索引,导致锁表问题。2. 乐观锁所谓乐观锁与前边最大区别在于基于CAS思想,是不具有互斥性,不会产生锁等待而消耗资源,操作过程中认为不存在并发冲突,只有update version失败后才能觉察到。我们的抢购、秒杀就

2020-11-27 21:56:03 554

原创 1.5.9spring could+consul+kafka+redis+zuul+nexus+xxl-job项目零基础搭建

1.linux环境安装1.安装tomcat,jdk,maven等环境2.nexus安装nexus安装:#下载nexuswget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.5-02-bundle.tar.gz#解压到指定目录tar -zxvf nexus-2.14.5-02-bundle.tar.gz -C /usr/local/#在环境变量中设置启动用户vim /etc/profile#编辑

2020-09-25 18:29:16 542

原创 记一个openFeign使用拦截器RequestInterceptor熔断机制踩坑

feign配置如下@Configurationpublic class LoggingConfigure { @Bean public Logger.Level config(){ return Logger.Level.FULL; }}yaml配置如下:feign: hystrix: enabled: true client: config: default: connectTimeout: 10000

2020-09-25 17:56:50 3244 1

原创 jdk安装卸载

jdk安装卸载卸载jdk删除java安装目录删除JAVA_HOME删除path下关于java的目录java -version安装jdk百度搜索JDK8,找到下载地址同意协议下载电脑对应版本双击安装JDK配置环境变量我的电脑–》右键–》属性环境变量–》系统变量新建JAVA_HOME–》录入JDK安装目录配置path变量新增:%JAVA_HOME%\bin新增:%JAVA_HOME%\jre\bin查看是否安装成功:java -versio

2020-07-17 17:07:23 86

原创 Windows常用命令加快捷键

Windows学习Windows快捷键永久删除: shift + delete打开我的电脑:windows + E打开任务管理器:ctrl+shift +escDos命令打开cmd的方式1. 开始+系统+命令提示符2. windows+R3. 在任意文件夹下面,按住shift键+鼠标右键点击,4. 资源管理器的地址栏前面加上空格 cmd常用dos命令#盘符切换 E:#查看当前目录下面所有文件 dir#切换目录 cd /d f:\文件夹#清理品目 cls(cle

2020-07-17 16:20:59 134

原创 Markdown学习

Markdown学习标题三级标题四级标题字体Hello,World!Hello,World!Hello,World!Hello,World!引用引用别人的文章分割线图片[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Kw58Rz4-1594971884289)(C:\Users\EDZ\Desktop\BPLINK\video\1.jpg)]超链接点击跳转博客列表ABCABC表格名字性别生日

2020-07-17 15:45:29 65

空空如也

空空如也

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

TA关注的人

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