自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (4)
  • 收藏
  • 关注

原创 IDEA中使用Jira和IDEA的Task功能管理你的任务和Git提交

IDEA中使用Jira 和IDEA的Task功能管理你的任务和Git提交,此方法可以在每次完成一次Jira中的任务中commit的时候自动添加相应的任务注释。此方法在IDEA同一列的编译器中均适用,如:webStorm等。同时,也和Jira具有类型功能的工具中也适用,如:github中的issue等。具体的实现步骤如下:1. 在编译器中安装Jira插件在IDEA中安装两个插件安装完毕之后,在IDEA的底部控制栏会出现一个Jira的工具栏然后和Jira进行连接,点击configure serv

2021-07-11 19:16:43 3069 5

原创 Java8新特性函数式编程 ---- lambda表达式

在java8版本中有三个重要使用的更新内容,其中之一为lamda表达式的使用,lamda表达式使用使java具有了函数式编程的规范,它的存在可以简化匿名内部类使用时的代码编写量,利用Lamda表达式是为了避免匿名内部类定义过多无用的操作。1 使用背景lamda表达式是java为函数式编程而设计的,要了解其函数式编程,就要先了解java的匿名内部类的。匿名内部类:在java中,若一个接口中存在一个方法,想要调用该接口的该方法,因为是一个接口,直接使用new是创建不了的,但是可以new了之后重写内部的该方

2021-03-16 19:42:05 113

原创 vue组件中的父子组件之间的通信----(以一个弹出框封装的子组件为例)

问题:使用vue框架进行开发,UI使用ElementUI,遇到需要将一个弹出框中的内容整个做成一个组件来实现复用。解决思路将这个弹出框做成一个组件,弹出框的标题这里使用父组件向子组件传递。然后将在弹出框中选中的数据返回到父组件,这里涉及到子组件向父组件传值。步骤:一、父组件向子组件通信首先在子组件中写好需要父组件传递的参数这里可以直接将子组件弹出框的标题赋值为title,titleDataSys是子组件弹出框的标题。然后编写子组件弹出框的展示函数到这里子组件的准备工作就结束了,接下来就

2020-10-21 19:36:02 532

原创 数据库的分库分表

分库分表包括分库和分表两部分,再生产过程中通常包含:垂直分库、水平分库、垂直分表和水平分表四种方式。1. 垂直分表将原本一张表中的字段拆分到多个表中2. 垂直分库将原本一个库中的数据拆分到多个库中,实现专库专用4. 水平分库将原本存储在一个数据库中的表,根据某些规则拆分到不同的数据库中5. 水平分表将原本存储在一个表中的数据,按照某些规则拆分到不同的表中...

2021-10-13 16:49:22 222

原创 elasticsearch通过固定安装Elasticsearch-head 插件

下载插件:https://github.com/liufengji/es-head安装插件: google —》更多工具----》扩展程序将解压的elasticsearch-head.crx文件拖进来。提示程序包无效:“CRX_HEADER_INVALID”将elasticsearch-head.crx更名为elasticsearch-head.rar 再解压;进入elasticsearch-head文件夹将_metadata文件夹重命名为metadata打开Google的扩展程序,点击加载已解

2021-08-31 17:13:16 250

原创 数据库拆分库的水平扩展和垂直扩展方式

垂直拆分是把不同的表拆到不同的数据库中,而水平拆分是把同一个表拆到不同的数据库中。1. 水平扩展读写分离(主从复制)集群分区2.垂直扩展分库(专库专用,特别是微服务中的使用)...

2021-08-22 18:51:03 403

原创 java 的反射机制

java的反射机制是java框架的基石,正是有了反射的机制,才会有那么多优秀的java开发框架。反射将java类中的属性、构造器和方法都变成了对象,更是充分体现了java“万物皆对象”的设计思想。优势:1.可以在程序运行过程中操作由反射生成的对象2. 解耦,降低代码的耦合度,提高代码的复用率 在平常的开发过程中,通过泛化和反射的结合,可以设置出更加精简、通用的代码。1 创建java反射机制的使用需要一个名为Class的类,其创建有三种方式1.Class.forName2.类名.class3

2021-08-03 19:07:53 159

原创 foreach是否可以修改遍历的对象

foreach循环迭代数组元素时,不能改变数组元素的值,因此,不要对foreach的循环变量进行赋值”。基本类型数组,不可改变。引用类型数组(除String类型),可以改变。1 对象foreach可以改变对象的值,但不能删除或添加对象(foreach循环中,是把容器中的数据交给了那个element,当容器中装的是对象时,对象的赋值(赋的是引用,即给的是原对象所在的地址))为什么不能删除或者添加变量,因为每次进入foreach是,就会调用java.util.LinkedList.Listltr.next

2021-07-24 10:52:19 2746

原创 Stream流中的中间操作map、filter、limit等

Stream流中提供了一些方便简单的中间操作,如map、filter、limit等

2021-07-22 19:34:11 336

原创 Stream流中的收集操作,转化成集合/数组等

1. collect收集器Stream流中的收集器collect API,是stream流的一个结束/终止操作。其写法是.collect(collectors.方法)输出List .collect(collectors.toList())输出Set .collect(collectors.toSet())输出Map .collect(collectors.toMap(需要设置key,需要设置value,某种规则))输出map可以设置某些规则,当然不是必须字段,比如相同key值进行valu

2021-07-22 19:33:05 4315

原创 使用Stream流将List转化为Map,并对相同key值的数据进行合并

使用Stream流将List转化为Map,并对相同key值的数据进行合并,这里使用的场景是:有一个存储产品对象列表,里面存在重复的产品信息,需要将相同产品信息和产品数量进行合并解决方法,将list使用stream的Collectors工具类的toMap进行转换,转化时的key为产品的ID,value为数量,规则为遇见相同的key进行数量的累加,代码如下所示 Map<Long, Integer> map = itemList.stream().collect(Collectors.toMap(

2021-07-22 19:06:53 7966

原创 SpringCloudGateway网关组件

SpringCloud Gateway是又SpringCloud提供的网关组件,用户客户端和各微服务之间请求的路由转发。

2021-07-13 18:29:26 241

原创 Sentinel 微服务中的服务容错组件

Sentinel 是由阿里开源的,广泛用于微服务中的服务容错组件。

2021-07-12 19:10:42 126 1

原创 Fegin--Spring Cloud微服务框架中服务调用组件

Fegin是Spring Cloud微服务框架中服务调用组件,可以完美的替代RestTemplate的方式进行服务的调用,而且Nacos完美的集成了Fegin,Fegin内部集成了Ribbon来实现某个服务集群的负载均衡。

2021-07-11 20:59:55 140

原创 RestTemplate--SpingCloud的微服务调用方式

在使用SpringCloud框架进行项目的微服务架构开发时,可以使用RestTemplate来实现微服务之间的调用,但是不推荐,推荐使用Fegin来实现服务的调用。

2021-07-11 20:56:53 107

原创 Ribbon -- SpringCloud提供的负载均衡组件

Ribbon是SpringCloud提供的负载均衡组件。

2021-07-11 20:46:25 123 1

原创 Nacos --一个微服务中的服务管理(discovery)和配置管理(config)组件

Nacos是一个服务注册和服务发现组件,可以理解为eureka+config

2021-07-11 20:21:30 686

原创 SQL中的字符串 CONCAT 拼接和 REPLACE替换函数

UPDATE sys_userSET read_notice = CONCAT(read_notice, “4,” ),unread_notice = REPLACE (unread_notice, ‘4,’, ‘’ )WHEREuser_id = 1;SELECT CONCAT_WS(’,’,null,‘2’);

2021-04-18 13:47:51 643

原创 docker的常用指令

docker的常用指令

2021-04-13 12:32:45 110

原创 Linux 服务器安装docker

Linux 服务器安装docker

2021-04-13 11:57:04 81

原创 docker 下安装nginx并配置挂载文件

docker 下安装nginx并挂载配置文件

2021-04-13 11:54:31 471

原创 docker 下安装redis并挂载配置文件

docker 下安装redis并挂载配置文件

2021-04-13 11:53:50 153

原创 docker 下安装mysql并挂载配置文件

docker 下安装mysql并挂载配置文件

2021-04-13 11:51:54 349

原创 使用GIT 将本地某分支代码提交到另一个新仓库

换一种说法就是,从一个git仓库拷贝到另一个git仓库。做法:以镜像推送的方式上传代码到新的仓库地址git push --mirror http://...(目标仓库地址)

2021-04-01 19:02:29 1090

原创 java Set集合中哈希表数据结构

在java的Set集合中hashSet在jdk1.8之前的哈希表是数组+链表,在1.8之后值数组+链表/红黑树,由链表变为红黑树的阀值是8,大于等于8时变为红黑树,其目的就是为了查询快1. 哈希表基本结构哈希表由数组和链表/红黑树组成,在数组中,存储的是存储数据的hashCode值,相同的值放在同一个数组中,然后比较equals值,如果相同就不存储,不同就通过链表向下增加,这就是不可重复性当查询的时候会逐个输出链表,相同的在一条链表的数据就会被一起输出,因此会有一个无序性。1.1 数组+链表式的结构如

2021-03-30 15:24:11 192

原创 java Collection集合框架中的数据结构

java的Collection集合中包含的数据结构有栈、队列、数组、链表和红黑树,也就是用来存储数据的结构。1. 栈2. 队列3. 数组4. 链表5. 红黑树

2021-03-30 13:33:57 92

原创 SpringSecurity+JWT 的权限验证技术

JWT是一种用于判断用户登录的令牌机制SpringSecurity是后端对请求资源进行权限验证的框架,它可以定制登录/退出逻辑,指定放行接口、验证接口,以及对检验的接口添加JWT filter实现登录权限验证放行的接口就不会进行JWT的filter验证,JWT的filet验证可以借助spring mvc框架的拦截器接口,这样当SpringSecurity放行接口时,springmvc的拦截器失去作用,当SpringSecurity验证接口时,spring mvc发挥作用,可以借助这种机制进行jwt的验证

2021-03-28 19:00:20 289

原创 基于JWT的token验证机制

Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的应用返回越来越广泛,它很好的取代了原始的保存在session中的登录认证的方式,因为这种方式在用户量上升的时候,消耗的内存较多,而且对于分布式的站点,虽然可以使用共享session来实现单点登录但是对于系统消耗较大。JWT说的本质一点就是在用户登录后对用户信息进行固定约束的加密手段从而产

2021-03-26 19:43:43 361

原创 Spring使用@Validated注解进行参数的校验

在之前项目中参数的校验,都是自己写的判断方法进行校验,这种方式需要编写大量的参数校验代码,这次采用了spring提供的注解进行参数的校验,更为的方便,简洁。@Valid:常见用在方法,类中字段上进行校验@Validated:是spring提供的对@Valid的封装,常见用在方法上进行校验,可以算是@Valid的一个升级版1.业务场景使用spring框架的代码,在Controller层的新增、修改接口中,往往是直接接收一个@ResponseBody解析的对象,接收之后需要进行一个对象参数的校验,防止

2021-03-24 19:05:34 1346

原创 java BigDecimal处理高精度的专用工具

在java.math包下的BigDecimal是java提供的处理高精度的API,double和float处理的数据精度在16位,对于业务需求中金额一类的数据处理时需要使用高精度的BigDecimal来实现一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作。BigDecimal所创

2021-03-17 15:50:25 235

原创 java8新特性之Optional --- 解决空指针的问题

Optional 用于简化Java中对空值的判断处理,以防止出现各种空指针异常。 Optional实际上是对一个变量进行封装,它包含有一个属性value,实际上就是这个变量的值。1 创建它的构造函数都是private类型的,因此要初始化一个Optional的对象无法通过其构造函数进行创建。它提供了一系列的静态方法用于构建Optional对象:1.1 empty用于创建一个空的Optional对象;其value属性为Null。如:Optional o = Optional.empty();1.2

2021-03-16 20:41:38 388

原创 javascript的var、let和const关键字——ES6

在使用js进行前端开发时,总是离不开var、let和const关键字,它们的作用就是用来声明变量/常量。首先,我们要知道let 和 const关键字是ES2015(ES6)中增加的。var:声明变量let:声明块中的变量const——声明常量(一旦赋值回不可更改)按照声明类型来分可以分为:声明变量:var、let声明常量:const一、 var关键字在全局范围内有效可以声明多次可以变量提升二、let关键字基本用法:{ let a = 0; a // 0}a

2020-11-18 14:06:09 298

原创 Spring Security ——— Spring的安全框架

Spring Security 的前身是 Acegi Security ,是 Spring 项目组中用来提供安全认证服务的框架。Spring Security 为基于J2EE企业应用软件提供了全面安全服务。特别是使用领先的J2EE解决方案-Spring框架开发的企业软件项目。人们使用Spring Security有很多种原因,不过通常吸引他们的是在J2EE Servlet规范或EJB规范中找不到典型企业应用场景的解决方案。特别要指出的是他们不能再WAR 或 EAR 级别进行移植。这样,如果你更换服务

2020-11-17 16:16:19 331

原创 java8的Stream API入门笔记

一、Stream入门介绍1.流与集合有以下几种不同没有存储。 流不是存储元素的数据结构; 相反,它通过计算操作的流水线传送诸如数据结构,阵列,生成器功能或I / O通道的源的元件。功能性质。 流上的操作产生结果,但不会修改其来源。 例如,过滤从Stream获得的Stream会生成新的Stream而不需要过滤的元素,而不是从源集合中删除元素。懒惰寻求。 许多流操作(如过滤,映射或重复删除)可以懒惰地实现,从而暴露优化的机会。 例如,“找到具有三个连续元音的第一个String ”不需要检查所有的输入字

2020-11-09 17:50:05 168

原创 在windows本地系统下,安装完成redis后配置开机自启功能

准备:安装好redis点击安装目录下的redis-server.exe看到下图证明安装成功但是这样做就一个缺点,redis每次都需要自己手动启动。为了减少这种操作,可以将redis添加到本地服务中,然后启动服务来实现以后的开机自动启动功能。首先cmd到redis安装根目录下执行 注册安装服务同时如果想卸载,同理执行卸载服务#注册安装服务redis-server --service-install redis.windows.conf --loglevel verbose#卸载服务re

2020-09-11 10:41:06 125 1

原创 数组工具类Arrays和集合工具类Collections的常用方法

Arrays是数组的工具类,内部提供了许多操作数组的静态方法,并且提供了一个和集合的转换方法。Collections是集合的工具类,内部同样提供了需要集合需要的静态方法,也提供了一个和数组转换的方法。1. 数组工具类 Arrays该类包含用于操作数组的各种方法(如排序和搜索)。 该类还包含一个静态工厂,可以将数组视为列表。 如果指定的数组引用为空,则该类中的方法都抛出一个NullPointerException ,除非另有说明。**1.1 **2. 集合工具类 Collections...

2020-07-20 19:14:30 341

原创 win10系统下安装RabbitMQ并配置web页面

rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang平台上。第一步:安装Erlang环境(1)下载下载地址:https://www.erlang.org/downloads选择一个适合的版本,例如:OTP 21.0.1 Windows 64-bit Binary File (91707927)(2)安装整个安装过程没

2020-06-16 18:08:45 1169

原创 高并发项目如何优化 -----redis缓存+页面静态化

对于高并发的项目,为了提高系统的承压能力和响应速度,可以使用redis缓存数据和资源静态化,本篇文章就是记录关于项目优化的过程。一、页面缓存对于通用页面,一般使用页面缓存,直接将需要返回给用户的页面存储到redis中,然后当有人再次访问时直接出redis中取出直接返回给用户,不在进行其他操作,节省系统资源。二、url缓存url缓存是一种特殊的页面缓存,原因在于他有特殊的参数信息,对应不同的页面,比如一个商品的详情页,就需要url缓存,因为不同的商品有不同的信息,使用页面缓存并不能实现这一功能。三、

2020-06-10 12:20:43 1980

原创 使用JMeter对系统进行压力测试----从配置到测试

对于高并发的项目,进行压力测试是对系统能够承受的并发量的一个预估,在开发过程中可以帮助开发人员清楚掌握项目的实际承受量,并进行不断的优化以达到高并发的要求。一、前提准备Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。因为JMeter是使用JAVA写的,所以使用JMeter之前,先安装JAVA环境。(一)检查java环境(二)安装jMeter.JMeter下载地址:在官网 http://j

2020-06-10 11:56:16 750

原创 Linux系统基础的常用命令(未完,持续更新中...)

一、下载文件指令(1)wget举例:下载mysql数据库压缩包[root@iZjknh12ghi052Z ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz(2)解压tar -zxvf[root@iZjknh12ghi052Z ~]# tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz(3)移动

2020-06-07 15:58:00 148

apache-maven-3.3.9.zip

后端开发工程基本都采用maven管理开发文件,maven 3.3是后端开发这值得拥有的版本,稳定可靠,效率高。

2020-03-02

mysql-5.5.62-winx64.msi.zip

虽然mysql5.5版本比较老,但是对于一个新手来说,是不错的学习版本,而且也比较稳定,适合新手朋友们的使用。

2020-03-02

apache-tomcat-9.0.20.zip

tomcat 9.0版本,强烈推荐,超级稳定好用,很不错,推荐一下喽,真心不错,安利一下,大家快来~下~载~啊,快快快!

2020-03-02

jdk-8u211-windows-x64.zip

java1.8版本,超稳定。在java所有的版本中,1.8这个版本最稳定,最好用,强烈推荐。

2020-03-02

空空如也

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

TA关注的人

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