自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Been You

博客为记录学习过程,同一问题可能有不同解决办法,欢迎相互交流。

原创 Redis list常用命令

什么是redis的list数据结构? List类型是一个双端链表的结构,容量是2的32次方减1个元素,即40多亿个; 其主要功能有push、pop、获取元素等;一般应用在栈、队列、消息队列等场景。 Redis list命令实战 [LR]PUSH key value1 [value2 …] 以头插或...

2020-07-04 21:25:00 51 0

原创 Redis set常用命令

redis set 和java的set集合功能差不多的 集合(Set) 的主要功能就是求并集、交集、差集。 A = {'a', 'b', 'c'} B = {'a', 'e', 'i�...

2020-07-04 21:08:01 39 0

原创 Redis hash常用命令

什么是redis的hash数据结构? redis的hash数据结构,其实就是string的升级版,它把string 数据结构的key value,中的value类型升级为hash(和java的hash一样的结构) Map<String, HashMap<String,String&g...

2020-07-04 20:53:09 88 0

原创 JAVA 锁

前言 1.锁类型 锁从宏观上分类,分为悲观锁与乐观锁。 (1)乐观锁 乐观锁是一种乐观思想,即认为 读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为 别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时先读出当前版本号,然后加锁操作(比较跟上一...

2020-06-27 17:18:01 39 0

原创 JAVA 后台线程

1.定义: 守护线程–也称“服务线程”,他是后台线程,它有一个特性,即为用户线程 提供公共服务,在没有用户线程可服务时会自动离开。 2.优先级: 守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。 3.设置: 通过 setDaemon(true) 来设置线程为“守护线程”;将一个用户线...

2020-06-26 16:02:22 37 0

原创 sleep 与 wait、start 与 run 的区别

1、sleep 与 wait 区别 对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于 Object类中的。 sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。 ...

2020-06-26 15:51:37 43 0

原创 终止线程 4 种方式

1、正常运行结束 程序运行结束,线程自动结束。 2、使用退出标志退出线程 一般 run()方法执行完,线程就会正常结束,然而,常常有些线程是伺服线程。它们需要长时间的运行,只有在外部某些条件满足的情况下,才能关闭这些线程。使用一个变量来控制循环,例如: 最直接的方法就是设一个boolean类型的标...

2020-06-26 15:38:10 48 0

原创 线程生命周期(状态)

当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。 在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞 (Blocked)和死亡(Dead)5种状态。尤其是当线程启动以后,它不可能一直"霸占"着CPU...

2020-06-26 14:49:35 60 0

原创 Java线程4中实现创建方式

1、继承Thread类 Thread类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例。启动线程的唯一方法就是通过Thread 类的 start() 实例方法。 start() 方法是一个 native 方法,它将启动一个新线程,并执行 run() 方法。 public cla...

2020-06-26 10:12:39 55 0

原创 XML工具类

import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import javax.xml.bind.JAXB...

2020-06-18 14:58:10 46 0

原创 MySql三种插入

正常情况下,插入一条记录都是用 insert 语句,如果要根据该条记录是否存在进行替换更新等操作就需要先执行 select 查询,然后根据返回结果决定需要执行的语句,这样会多次连接数据库,影响系统性能,可以使用下面三种方式。 1、插入或替换 如果我们想插入一条新记录(INSERT),但如果记录已经...

2020-06-15 10:48:38 47 0

原创 解决Hmily与Feign冲突报错 NullPointerException

在项目中使用了Hmily保证分布式事务的一致性,由于Hmily会注册一个 HmilyFeignInterceptor ,并且feign会将其添加到 SynchronousMethodHandler 中的 requestInterceptors ,当feign客户端执行 HmilyFeignInte...

2020-06-02 22:40:41 99 0

原创 Base64加密后的二进制流用img标签显示

页面图片渲染的常用做法是 直接在 img 标签内 给 src 附一个 url 地址,交由浏览器去下载、缓存、渲染图片,如下图: 但有时后端返回的是图片的二进制流,如验证码这种随机生成的图片,同时图片的二进制流还是经过Base64加密后的。 处理办法: 使用 Data URI scheme Dat...

2020-05-28 21:39:39 168 0

原创 Spring Cloud Gateway 整合Spring Security

做了一个Spring Cloud项目,网关采用 Spring Cloud Gateway,想要用 Spring Security 进行权限校验,由于 Spring Cloud Gateway 采用 webflux ,所以平时用的 mcv 配置是无效的,本文实现了 webflu 下的登陆校验。 1....

2020-05-24 17:41:44 664 3

原创 Spring Cloud Feign异常处理机制

在Spring Cloud 微服务中不可避免的使用Feign来远程调用其他服务接口,一般情况下,会在报文格式中冗余一个响应码和响应信息的字段,例如: { "msg": "产品不存在", "code": 40005, "...

2020-05-16 20:58:33 262 1

原创 lombok 使用@Slf4j注解 无法使用info、error等方法解决

报错原因: slf4j需要依赖一个日记库,如果没有,随便添加一个,比如logback、log4j 解决办法: 添加依赖,这里没有给出具体版本,可以自己去maven仓库查找适合的版本,如果是spring boot项目直接用下边的即可。 <dependency> <group...

2020-05-15 12:38:53 314 0

原创 Spring Boot自动配置第三方jar包中的配置

一、需求描述 写了一个maven项目封装一套组件可以给第三方使用,如果第三方直接引用依赖,Spring Boot不会对引用的jar中的配置类(如带有@Configuration的类) 解决方案: 1.使用者手动配置 @ComponentScan 2.配置开关决定是否开启配置 3.Spring B...

2020-05-14 16:46:08 114 0

原创 Object工具类

import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; /** * @author JZ * @createTime 2020-05-14 9:10 */ public class Ob...

2020-05-14 11:17:46 63 0

原创 RedisTemplate工具类

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.*; import org.springframework.data.redis.co...

2020-05-13 17:25:48 110 0

原创 Mybatis 通用mapper+lombok代码生成器

1、pom依赖 <properties> <lombok.version>1.18.12</lombok.version> <mysql.version>8.0.18</mysql.version> <gen...

2020-05-13 13:34:16 129 0

原创 搭建Spring Cloud Gateway

spring boot版本:2.1.10.RELEASE spring cloud版本:Greenwich.SR4 1.添加pom依赖 <!-- spring gateway依赖 --> <dependency> <groupId>org.springf...

2020-05-02 16:12:04 161 0

原创 nginx配置跨域

server { listen 80; listen [::]:80; server_name 127.0.0.1:80; root /data/blog/backend/dist; index index.html...

2020-05-01 09:55:46 73 0

原创 java 获取Excel内容

1.maven依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17&l...

2020-04-10 11:16:50 39 0

原创 数组实现小顶堆

import java.util.Scanner; /** * 堆最重要的性质就是儿子的值一定不小于父亲的值。 * @author:JZ * @date:2020/3/30 */ public class Main { static int[] heap = new int[1...

2020-04-09 20:42:24 69 0

原创 Ubuntu18.04 部署vue项目

1.安装nginx 请参考 Ubuntu 18.04安装nginx 2. 打包vue项目 在项目的根目录中找到 package.json 文件 中的 scripts 节点 在项目的根目录下执行 npm run bulid:prod 备注 其中 prod 是上图中配置的参数 3. 上传 di...

2020-02-27 21:50:05 407 0

原创 Ubuntu 18.04安装nginx

1.更新软件源 sudo apt-get update 2.安装nginx sudo apt-get install nginx 3.nginx配置文件 vim /etc/nginx/nginx.conf 4.常用操作 (1)不重启重新载入最新配置文件内容 sudo service ngin...

2020-02-27 20:28:17 186 2

原创 解决 unexpected operator 报错问题

写了一个shell脚本,一直报如下错误: server.sh: 38: [: start: unexpected operator 解决方法一 将ubuntu 默认的 shell 链接的 dash 改成传统的 bash 执行如下命令: sudo dpkg-reconfigure dash 在弹...

2020-02-27 19:13:51 318 0

原创 Ubuntu 18.04 安装nodejs、nmp

1.安装 nodejs sudo apt-get install nodejs 2.安装nmp sudo apt-get install npm 3.更换nmp源 sudo npm config set registry https://registry.npm.taobao.org sudo...

2020-02-27 16:42:06 147 0

原创 Rabbit MQ 基础详解

1.Message 消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键)、priority(相对于其他消息的优先权)、delivery-mode(指出该消息可能需要持久性存储)等。 2.Publisher 消...

2020-02-27 15:49:56 116 0

原创 Ubuntu18.04 root账号登陆图形界面

Ubuntu18.04.1开发团队为了Ubuntu18.04.1系统的安全,默认root不能登录图形界面,普通用户需要使用root权限时,只能通过sudo [命令] [参数] 临时使用root权限,或是使用su root切换到root用户权限下进行操作。 1.修改50-ubuntu.conf...

2020-02-21 15:26:31 127 0

原创 Ubuntu vi和vim无法正常使用

在Ubuntu中,进入vi 命令的编辑模式,发现按方向键不能移动光标,而是会输出ABCD,以及退格键也不能正常删除字符。这是由于Ubuntu预装的是 vim-tiny,而我们需要使用 vim-full 解决办法 1.卸载vim-tiny apt-get remove vim-common 2.安...

2020-02-21 14:52:44 222 0

原创 Can't load /root/.rnd into RNG

在安装 openssl 证书时提示如下报错: Can't load /root/.rnd into RNG 140496635077056:error:2406F079:random number generator:RAND_load_file:Cannot open file:../...

2020-02-21 12:27:26 1580 1

原创 搭建Docker本地仓库

为什么需要搭建本地仓库? 1.节约带宽:因为如果用docker或阿里云官方的仓库走的互联网浪费带宽,而且慢。 2.提供资源利用和安全:因为公司内部的镜像,推送到本地仓库,更方便公司内部人员用,而且安全性高。 搜索仓库镜像 docker search registry 下载仓库镜像 docker...

2020-02-16 17:33:56 64 0

原创 用dockerfile制作镜像

一、什么是dockerfile? 1.dockerfile是一个文本的配置文件,它可以快速创建自定义的镜像。 2.文本内容:包含了若干的命令行,并支持#作为注释行。 3.文本格式:基础镜像FROM,维护者MAINTAINER,操作指令ADD,容器启动后指令等共计4部分。 二、dockerfile内...

2020-02-16 14:34:43 55 0

原创 Docker镜像管理

1.什么是镜像? a.一个只读的模板,就是一个dockerfile,可以在镜像仓库上传或下载。 b.先有镜像,后有容器;并且一个镜像可以创建多个容器。 c.docker镜像最大的特点:分层结构。最底层是一个base层,也即是一个操作系统层。它还会从base层一层层的叠加生成。 什么是层层叠加?...

2020-02-15 16:13:34 59 0

原创 Ubuntu18.04 安装docker

前言 docker要求系统内核在3.10以上 查看系统内核 uname -r 安装Docker apt-get install -y docker.io 安装后会自动启动 查看版本 两个命令都可以查看docker版本,只不过 docker version 展示的信息更全。 docker ver...

2020-02-15 11:32:26 84 0

原创 分布式链路跟踪Sleuth与Zipkin

  随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药。于是就有了分布式系统调用跟踪的诞生。   现今业界分布式服务跟踪的理论...

2020-02-09 19:17:21 331 0

原创 MySQL创建用户并授权

创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 删除用户 DROP USER 'username'@'host'; 说明...

2020-02-09 18:08:24 86 0

原创 Spring Boot2.x sleuth集成ELK日志管理系统

搭建ELK日志管理系统 Ubuntu 18.04 安装ElasticSearch Ubuntu 18.04搭建Logstash Ubuntu 18.04 搭建Kibana 添加依赖 <!--sleuth 服务跟踪依赖--> <dependency> <groupId...

2020-02-08 19:21:44 372 0

原创 Ubuntu 18.04 搭建Kibana

Ubuntu 18.04 安装ElasticSearch Ubuntu 18.04搭建Logstash Ubuntu 18.04 搭建Kibana 1、下载安装包 wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.3-lin...

2020-02-07 20:19:31 593 0

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