自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 架构新起点

架构????从一开始学习 JavaEE 开始,最开始听到的便是三层架构+MVC。我认为的架构,是整个项目的结构,由项目中的各个组件组合而成,就像是积木拼搭在一起支撑起整个体系结构,而架构的目的就是为了解耦,以至于使用各种开发框架。微服务微服务是一种新型的架构风格和架构思想,从2014年开始被人们所关注。由于互联网发展迅速,传统的单体架构无法承受大流量导致的高并发问题,经过这么多年的架构演...

2020-02-08 19:54:56 140 1

原创 看完,SpringBoot自动配置你就懂了!

SpringBoot 是个很强大的框架,免去很多繁杂配置,它是怎么实现这些功能的,来看看 SpringBoot 的运行原理。首先,SpringBoot 启动类是整个项目的启动入口,@SpringBootApplication 注解是整个启动类的核心,可以看一下 @SpringBootApplication 的部分源码。可以看出 @SpringBootApplication 注解是一个组合注解...

2019-12-21 19:54:17 301 1

原创 【MySql】根据特定符号拆分结果为多行

MySql 根据特定符号拆分结果为多行

2022-08-11 15:25:15 907 2

原创 【Bug】Collectors.toMap 重复问题与空值报错问题

Collectors.toMap 重复问题与空值报错问题

2022-07-29 09:13:29 706

原创 Docker Compose 安装 Minio

Docker Compose 安装 Minio

2022-07-29 09:10:16 371

原创 Centos7.9 安装 Docker 和 Docker-Compose

Centos7.9 安装 Docker1. 更新数据源yum update2. 设置安装的数据源(阿里)yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo3. 安装 Docker 客户端yum install docker-ce4. 查看 Docker 版本docker -v5. 配置镜像加速器etc 目录下创建 docker 目录,daemon.json 配置

2022-05-20 17:43:17 1489

原创 【Bug】SpringCloud Alibaba Nacos + Gateway 服务转发 503 Service Unavailable

Nacos 自带 spring-cloud-starter-netflix-ribbon,而 Netflix 的 Ribbon 已进入维护阶段,从最新的 SpringCloud 2020 版本开始就需要改用 Spring cloud loadbalancer<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-n

2021-09-10 16:31:03 483

原创 Docker Compose 安装 Jenkins

配置文件version: '3.5'services: jenkins: restart: always image: jenkins/jenkins:lts container_name: jenkins environment: TZ: Asia/Shanghai ports: - 80:8080 - 50000:50000 volumes: - data:/var/jenkins_homevol

2021-09-03 00:19:33 152

原创 【Spring Security】身份认证的多种方式

配置文件通过配置文件设置登录的用户名和密码spring: security: user: name: mary password: 123 roles: admins启动项目,控制台默认生成的密码消失,说明 Spring Security 账号密码已经由默认生成变化为读取配置文件访问接口,进入认证页面,输入配置文件中配置的账号密码,正常访问接口配置类通过配置类的方式,配置登录的账号密码,这里是采用基于内存的方式@Configuration@E

2021-09-02 11:48:47 773

原创 【Spring Security】SpringBoot 集成,入门案例

Pom 依赖这里使用 SpringBoot 版本为:2.4.10对应 Spring Security 版本为:5.4.8由于方便后面案例,直接将其他可能用到的依赖一同加入<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s

2021-09-02 10:04:42 117

原创 【Bug】cnpm:无法加载文件 C:\Users\***\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本

解决方法:以管理员身份运行 power shell输入 set-ExecutionPolicy RemoteSigned输入 A 回车

2021-08-31 09:39:16 88

原创 Ubuntu安装Docker(新版)

安装步骤:更新Ubuntu的apt源索引sudo apt-get update安装包允许apt通过HTTPS使用仓库sudo dpkg --configure -asudo apt-get install apt-transport-https ca-certificates curl software-properties-common添加Docker官方GPG keycurl -fsSL https://download.docker.com/linux/ubuntu/g

2021-08-29 22:29:58 230

原创 MySQL GROUP_CONCAT 函数,字符串连接过长被截断

GROUP_CONCAT 函数,字符串连接过长被截断使用 GROUP_CONCAT 函数拼接字符串,由于数据比较多,拼接出的字符串显示不全原因MySQL 对 GROUP_CONCAT 函数数据结果限制了长度。解决方法修改配置参数 group_concat_max_len,把值改为最大或者需要的长度。1. 修改 MySQL 配置文件 my.cnfgroup_concat_max_len = 102400000;2. MySQL 命令行修改全局配置,修改后会立即生效SET GLOBAL g

2021-07-23 16:05:24 1329

原创 TortoiseSVN 忽略 Maven 项目的 target 目录

TortoiseSVN 配置鼠标右键,TortoiseSVN-- >Settings -->Subversion–>Global ignore pattern添加 target *.settings .classpath .project应用即可

2021-07-16 15:02:17 933 1

原创 【Kubernetes】Ubuntu 安装 kubeadm,kubelet,kubectl

配置软件源apt-get update && apt-get install -y apt-transport-httpscurl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -cat << EOF >/etc/apt/sources.list.d/kubernetes.list> deb https://mirrors.aliyun.com/kuberne

2021-07-13 22:26:42 154

原创 SpringCloud Gateway:Consider defining a bean 问题

SpringCloud GatewayAPPLICATION FAILED TO STARTDescription:Parameter 0 of method modifyRequestBodyGatewayFilterFactory inorg.springframework.cloud.gateway.config.GatewayAutoConfiguration required a bean of type‘org.springframework.http.codec.ServerC

2021-05-21 09:49:57 684

原创 HashMap 负载因子为什么默认为 0.75

HashMap 负载因子为什么默认为 0.75负载因子是和扩容机制有关的,意思是如果当前容器的容量,达到了我们设定的最大值,就要开始执行扩容操作。举个例子来解释,避免小白听不懂:比如说当前的容器容量是16,负载因子是0.75,16*0.75=12,也就是说,当容量达到了12的时候就会进行扩容操作。他的作用很简单,相当于是一个扩容机制的阈值。当超过了这个阈值,就会触发扩容机制。HashMap源码已经为我们默认指定了负载因子是0.75。我截取了部分源码,从这里可以看出,系统默认的负载因子值就是0.75,

2021-03-30 09:37:34 1928 3

原创 布隆过滤器

布隆过滤器布隆过滤器(Bloom Filter)是一个由二进制向量(位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的的 List、Map 、Set 等数据结构,它占用空间更少并且效率更高,但是缺点是其返回的结果是概率性的,而不是非常准确的。理论情况下添加到集合中的元素越多,误报的可能性就越大。并且,存放在布隆过滤器的数据不容易删除。原理当一个元素加入布隆过滤器中的时候,会进行如下操作:使用布隆过滤器中的哈希函数对元素值进行计算,得到哈希值(有几个哈希函数得到几个

2021-03-04 14:03:57 120 1

原创 JVM 垃圾收集器

JVM 垃圾收集器Serial 收集器ParNew 收集器Parallel Scavenge 收集器CMS 收集器G1 收集器Serial 收集器Serial 收集器称为串行收集器,是历史最久远的垃圾收集器,它是一个单线程收集器,并不是只使用一个线程进行垃圾收集,最主要的是它在进行垃圾收集时必须暂停其他所有工作线程直到收集结束。新生代采用标记-复制算法,老年代采用标记-整理算法。ParNew 收集器ParNew 收集器其实就是多线程版的 Serial 收集器,使用多线程进行垃圾收

2021-02-27 20:04:48 96

原创 谈谈 ThreadLocal

ThreadLocalThreadLocal 类主要是解决在多线程情况下让每个线程都拥有属于自己的本地变量,线程之间互不影响,各自拥有各自的 ThreadLocal,从而避免了线程安全的问题。/* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal class. */ThreadLocal.ThreadLocalMap threadLocals = null;/* *

2021-02-23 10:13:04 204

原创 谈谈 synchronized

1. synchronizedsynchronized 关键字解决的是多个线程之间访问资源的同步性,synchronized 关键字能够保证被它修饰的房吗或者代码块在任意时刻只能有一个线程执行,synchronized 是可重入锁。“可重入锁” 指的是自己可以再次获取自己的内部锁。比如一个线程获得了某个对象的锁,此时这个对象锁还没有释放,当其再次想要获取这个对象的锁的时候还是可以获取的,如果不可锁重入的话,就会造成死锁。同一个线程每次获取锁,锁的计数器都自增 1,所以要等到锁的计数器下降为 0 时才能

2021-02-22 20:32:18 118

原创 git官网下载速度太慢解决方法

https://blog.csdn.net/ly160507/article/details/111509543

2021-02-03 13:38:02 420

原创 hashCode() 与 equals()

hashCode()hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个 int 整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode()定义在 JDK 的 Object 类中,Java 中的任何类都包含有 hashCode() 函数。Object 的 hashcode 方法是本地方法,是用 c 语言或 c++ 实现的,该方法通常用来将对象的内存地址转换为整数之后返回。public native int hashCode();散列表存储的是键值对(ke

2021-01-26 23:27:20 61

原创 HTTP/HTTPS 协议

HTTP 协议HTTP 协议和 TCP/IP 协议族内的其他众多协议相同,都是用于客户端和服务器之间的通信。HTTP 协议版本:HTTP 0.9:HTTP 1.0:HTTP 1.1:HTTP 2.0:Https 协议

2021-01-24 13:03:27 2243

原创 网络分层模型

OSI 七层模型TCP/IP 五层模型

2021-01-16 23:42:53 79

原创 TCP 协议 三次握手,四次挥手

三次握手,四次挥手TCP 协议是稳定可靠的,能够将数据准确无误的传输到目标处,正是因为 TCP 协议采用了三次握手,四次挥手的策略。在三次握手,四次挥手策略中涉及到几个 TCP 报文标志的概念:序号:发送的数据字节流,确保 TCP 传输有序,对每个字节编号。确认序号:发送方期待接受的下一序列号,接收成功后的数据字节序列号 +1,只有当 ACK = 1 时生效。SYN(synchronize):请求建立连接,并在其序列号的字段进行序列号的初始值设定,建立连接设置为 1。ACK(acknowled

2021-01-16 23:04:02 144

原创 网络基础 TCP/IP 协议族

TCP/IP 协议族计算机与网络设备要相互通信,双方必须基于相同的方法。不同的硬件、操作系统之间的通信都需要一种规则,而这种规则就称为协议(protocol)。协议内存在各种各样的内容,把互联网相关的协议集合起来就称为 TCP/IP。TCP/IP 的分层管理TCP/IP 协议族内最重要的一点就是分层。TCP/IP 协议族按层次分别分为以下 4 层:应用层传输层网络层数据链路层而这样层次化的好处就是:若互联网只有一个协议统筹,而该协议某个地方需要变动时,就只需要将变动的层替换掉,把各层

2021-01-15 17:23:54 643

原创 面向对象设计原则

面向对象设计原则口诀:开口合里最单依。开: 开闭原则 —— 面向扩展开放,面向修改关闭。口: 接口隔离原则 —— 一个类对另一个类的依赖是建立在最小的接口上。合: 组合、聚合原则 —— 在一个新的对象里面使用一些已有的对象,使之城卫新对象的一部分,新对象通过这些向对象的委派达到复用已有功能的目的。里: 里氏替换原则(迪米特法则) —— 所有引用基类的地方必须透明的使用其子类的对象。最: 最少知识原则 —— 一个对象应当对其他对象有尽可能少的了解。两个类不必彼此直接通信,那么两类之间就不应该发生

2021-01-13 09:05:50 174

转载 解决使用asp.net c# webservice输出json,后面多出{“d“:null}的问题

使用asp.net c# webservice输出json,会再后面多出{“d”:null}解决方法,原因是Request的Content-Type设置成了application/json,改成application/text就可以解决了。如果post传递参数有问题,那么改成application/x-www-form-urlencoded就可以解决。...

2021-01-07 17:23:00 1677

原创 ConCurrentHashMap--分段锁机制

HashMapHashMap 是线程不安全的,在多线程的环境下进行 put 操作可能会导致死循环。HashTableHashTable 是线程安全的,原因是其源代码中,大部分方法都采用了 synchronized 关键字修饰,但是在多线程情况下,多个线程抢占一把锁,会导致效率低下。 HashTable 现在已经淘汰,基本不使用。ConcurrentHashMapConcurrentHashMap 是 Java 并发编程包(JUC)中提供的,JDK1.7 的 ConcurrentHashMap 底层

2020-12-31 10:51:51 941

原创 npm重新安装node_modules方法

npm重新安装node_modules方法https://www.cnblogs.com/zhouyu2017/archive/2004/01/13/14069471.html

2020-12-16 10:42:08 2236

原创 ElementUI 原生方法添加参数

ElementUI 原生方法添加参数ElementUI 源代码中的方法入参是固定的,在多选框过滤方法中,默认参数是 val 和 item,不够满足需求。想要动态添加方法入参,可以这样传递::filter-method="(val, item) => {return dataFilter(val, item, tableData[scope.$index])}"<el-select v-model="tableData[scope.$index].value"

2020-10-14 10:22:57 2036 1

原创 ElementUI Select选择器下拉框样式修改

Select选择器下拉框样式无法修改原因通过Dom元素可以发现,官方Select选择器下拉框是直接插入body标签中,与最外级div同级,所以在Vue中无论怎么写css都无法覆盖到下拉框样式。在ElementUI官方文档中,查找到一个属性:popper-append-to-body(默认值是 true)。在Select选择器上,添加:popper-append-to-body=“false”<el-select v-model="tableData[scope.$index].typ

2020-10-12 14:07:14 8856

原创 ArrayList源码阅读

ArrayList基本原理在JDK中,ArrayList底层基于一个Object[]数组来维护数据。ArrayList优缺点缺点:容量受限时,需要进行数组扩容,进行元素拷贝会影响性能频繁删除和往中间插入元素时,产生元素挪动,也会进行元素拷贝,影响性能不是线程安全的优点:随机访问某个元素,性能很好ArrayList主体结构IDEA中快捷键ALT+7,可以查看当前查看类中所有方法和成员变量、内部类等等。1. 构造函数从构造函数入手可以更容易的阅读。ArrayLi

2020-09-10 09:44:45 133 1

原创 Redis缓存穿透,缓存击穿,缓存雪崩

1. 缓存穿透同一时刻,大量的并发请求数据库中不存在的信息,在Redis中查询不到(缓存未命中),到数据库中查询也不存在,导致本次查询失败。当线程量增大,既不会命中缓存,也不会命中数据库,但是会查找数据库,导致数据库压力增大,这一情况称为缓存穿透。为什么会出现缓存穿透本质原因还是因为高并发在多线程的情况下,缓存中没有数据,大量线程同时访问数据库,第一个线程还没有将访问的数据写入缓存时,其他线程都穿过了缓存直接访问数据库。2. 缓存击穿缓存击穿与缓存穿透有些许不同,缓存击穿是指,在redis中有

2020-09-01 13:51:20 139 3

原创 【Linux】Centos7安装Nacos

Centos7安装Nacos下载Nacos压缩包:https://github.com/alibaba/nacos/releases解压unzip nacos-server-1.3.1.zip进入nacos文件夹bin目录,启动./startup.sh -m standaloneNacos的安装很简单,启动后,在/nacos/logs目录下会生成日志文件:start.out,查看日志文件观察Nacos是否启动成功。...

2020-08-10 09:58:18 593

原创 Docker-compose 部署 Alibaba/Sentinel

alibaba/SentinelSentinel github中文文档:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D克隆sentinel到本地,并打包git clone https://github.com/alibaba/Sentinel.gitmvn clean package

2020-07-20 13:20:11 1884

原创 【Linux】Centos7 安装 Maven

Linux 安装 MavenMaven的下载地址是:http://maven.apache.org/download.cgi将下载的压缩文件解压cd /usr/localmkdir mavenwget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gztar zxf apache-maven-3.6.3-bin.tar.gzmv apache-mav

2020-07-15 16:37:10 144 2

原创 【Bug】Linux关闭防火墙,Docker容器启动失败问题

Linux关闭防火墙,Docker容器启动失败由于Docker自身内部有一套网络,这套内部网路会依托Linux系统的防火墙,所以当我们将Linux系统的防火墙关闭时,Docker内部网络会被破坏,导致Docker容器启动异常抛错。解决方法: 重建Docker0网络重建Docker0网络按照进程名杀死docker进程pkill docker清空防火墙规则-清空nat表的所有链iptables -t nat -F查看定义规则的详细信息iptables -L -n -v 关

2020-07-13 08:30:20 2629

原创 Docker部署jar包项目

Docker部署jar包项目下载jdk镜像docker pull openjdk:8编写DockerfileFROM openjdk:8WORKDIR /usr/local/docker/appADD app.jar app.jarEXPOSE 8080ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=dev", "--server.port=8080"]构建镜像 (最后有个.)docker

2020-07-10 08:31:01 335

空空如也

空空如也

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

TA关注的人

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