自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XiaoMing学习分享博文

小明来向学习大佬们,分享一些自认为有价值的东西

  • 博客(123)
  • 收藏
  • 关注

原创 关于 WPS 下拉列表处理表头的问题

要做一个表格,包含二级联动,表格有标题,设置整列二级联动时候出问题;先设置完表头后,设置整列二级下拉会出现混乱的情况,就是二级联动的值乱了,这里不演示了错误时候的显示了。

2023-05-04 13:22:12 363

原创 关于算法的时间复制度

时间复杂度定义

2023-01-17 11:46:58 274

原创 【easypoi 模板导出嵌套 list 问题】

easypoi 嵌套多 list 模板导出

2022-12-09 12:50:37 6827 12

原创 java -jar 命令启动项目org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException

MalformedInputException

2022-10-21 17:48:23 375

原创 JDK17 ReentrantLock 简述 lock()、unLock()

JDK17 ReentrantLock 简述 lock()、unLock()

2022-08-30 06:59:13 487

原创 mysql 普通索引 limit 慢的问题

limit 深度大查询资料记录

2022-08-20 16:13:44 1188

原创 springboot 修改 vo 改变返回值

1.背景公司中有一个业务,返回的 vo 中的一个值可能为 0 属性,如果为 0 给用户显示成 1;听起来很简单,直接改代码 service 层的代码就行了,但是如果 service 层的逻辑复杂到一定程度,想要改动就不是那么容易了,如图:考虑对 rpc 接口返回的影响、 es 数据库(我们 es 要求存的数据尽量好数据库一样)的影响,是典型牵一发而动全身;2.过程我写了一版上面图上的改动,反复校验确定影响,做好回归测试准备之后,提交上了代码,并跟领导阐述了影响范围;领导眉头一皱,你还是改

2022-04-08 11:44:01 1222

原创 高中知识复习——log2(n)

1.背景最近时不时翻一下 LeetCode 的题,关于二分查找法经常有一个时间复杂度是 log2(n) 的概念,一时间竟然想不起来,索性买了本高中知识点书,外加百度,搞明白了最后写一篇文章总结并记录下。2.什么是 指数看图,2、3、4 右上的 2 、3、2 就是指数3.什么是 log2(n)表示的是 以 2 的多少次方等于 n数学上叫:以 2 为底 n 的 对数指数,对数,都是针对右上角的数字来说的,如果右上角数字记作 a 的话,不过是一个已经知道 a 求结果,一个知道结果求 a

2022-04-08 11:09:52 15848 1

原创 ApplicationEvent 的简介及简单使用

1.什么是 applicationEvent看源码:类的注释是,被应用事件继承的类,抽象的不能初始化;父类 EventObject类的注释第二行:所有的事件被构造时有一个对 Object 的引用;2.有什么用事件携带一个 Objecgt 对象,可以被发布;事件监听者,监听到这个事件后,触发自定义逻辑 ( 操作 Object 对象);3.怎么用以 SpringBoot 为例:定义事件,继承 ApplicationEvent 抽象类:定义事件监听器,实现 Applicatio

2021-10-10 12:22:00 18566 1

原创 Java 中的深拷贝、浅拷贝简单代码

结论:浅拷贝:基本类型重新生成一份,"引用类型"引用旧地址,生成新对象,需要实现 Cloneable 接口深拷贝:基本类型重新生成一份,"引用类型"也重新生成,生成新对象,需要实现 Serializable 接口1.浅拷贝:浅拷贝实现 Cloneable 接口@Datapublic class Person implements Cloneable { private String name; private Integer age; private Inner

2021-09-26 16:10:27 222

原创 小析 Spring 循环依赖的过程

1.代码如题,直接上代码截图2.分析相信大家只要研究过 Spring 对象创建过程,对截图代码都不会陌生;1.首先创建对象2.如果单例并允许循环依赖和正在创建该对象,把对象(或代理对象)放入三级缓存中 objectFactories3.填充属性如果创建的 A、B 两个对象 并且 A 和 B 直接存在循环依赖,并且实际应用的是 ProxyA、ProxyB 代理对象;把 A 创建的过程记作 :A1、A2、A3把 B 创建的过程记作 :B1、B2、B3过程:执行 A1, 先创建

2021-09-14 15:14:10 131

原创 解决报错:the request was rejected because its size (7931717) exceeds the configured maximum (1048576)

背景公司的 springboot 项目,上传图片报错:在项目的 application.properties 中配置:#上传文件大小(字节)设置为 1mbzfzz.file.upload.maxFileSize=1#系统默认为1MBspring.servlet.multipart.maxFileSize=1MBspring.servlet.multipart.maxRequestSize=1MB分析首先下载依赖源码文件:点击错误提示定位到抛出异常位置:打一个断点,然后重新请求,

2021-07-28 15:11:25 8835 2

原创 SpringBoot 2.3.7 版本 Controller层测试

背景最近换工作要写 SpringBoot Controller 层测试类。看了很多资料才找到,直接上看代码代码脱敏import com.google.gson.*;import com.google.gson.reflect.TypeToken;import com.zfzz.backstage.api.models.dto.RoleDTO;import com.zfzz.backstage.api.models.enums.RoleType;import com.zfzz.backst

2021-05-11 14:01:54 578 2

原创 springboot 集成 mybatis-generator with idea

springboot 集成 mybatis-generator with idea背景原来的 mybatis-generator-config.xml阅读 http://mybatis.org/generator/ 如何在 项目的 pom.xml 中 配置从 https://mvnrepository.com/ 查找依赖在 test 目录下测试OK背景上一篇在本地利用 jar 包方式和命令行使用 mybatis-generatorMybatis-Generator 自动生成文件 without I

2021-04-03 22:53:37 98

原创 Mybatis-Generator 自动生成文件 without IDEA

Mybatis-Generator 自动生成文件 without IDEA背景百度下载 Mybatis-generator下载 mysql 的 driver 连接器数据库创建测试表配置 mybatis-generator-config.xml放到一起spring boot 项目使用配置 Springboot 启动类扫描 XXXMapper 接口包配置 application.properties 配置:扫描 XXXMapper.xml 文件、数据源信息在 test 包下直接测试OK背景想利用 mybat

2021-04-03 16:36:55 84

原创 Redis 学习——客户端

文章目录第三章 客户端1.开启远程连接2. Jedis连接池3.Lettuce第三章 客户端1.开启远程连接Redis 默认是不支持远程连接的,需要手动开启,需要配置 redis.conf:警告说,如果打算直接暴露到网上,谁都可以连接,是危险的,建议强制坚挺配置的 IPV4 地址,这样只有配置的地址才能连接,由于我的 Redis 在 CentOS 虚拟机的 Ubuntu 系统中,所以我需要暴露到网上,此时比较危险,所以我在设置 redis 的连接密码:javaboy2. Jedis创建一个

2020-12-19 10:21:12 147 1

原创 Redis 学习 —— 五种基本类型的简介及使用

文章目录Redis 后端运行基本类型一 String基本类型二 List基本类型三 Set基本类型四 ZSet基本类型五 Hash补充Redis 后端运行正常情况下,通过redis-server redis.conf运行 Redis 是这样的:控制台被占领了,不能操作了;可以通过修改配置 redis.conf 配置文件,使得 Redis 在后端运行:基本类型一 StringString 是 Reis 里最简单的数据结构。在 Redis 中,五种数据类型的 key 全部都是字符串,因 v

2020-12-16 10:13:15 153

原创 Redis 学习 —— 简介安装

文章目录1.学习计划2.简介3.安装1.学习计划学习 江南一点雨 Redis 教程。它是以 Redis 教程合集(2019 年版)百度网盘密码:vezk为蓝本,然后添加很多新的知识点:分布式锁限流布隆过滤器延时队列Geo所有的内容在 Redhat linux 下操作2.简介Redis 是我们在互联网中使用最广泛的一个 NoSQL 数据库,它是基于 C 开发的键值对存储数据库,Redis 的名字是 Remote Dictionary Service 字母的缩写。很多人想到 Redis

2020-12-14 10:27:07 108

原创 Spring Cloud 学习笔记 —— Alibaba Sentinel

Sentinel: 分布式系统流量房卫兵Sentinel 是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可承受的范围)、消息晓峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同事提供实

2020-11-24 11:54:21 224

原创 Spring Cloud 学习笔记 ——Sleath、Zipkin、RabbitMQ、ElasticSearch、Stream 搭建链路项目

17.2 实践在Spring Cloud 学习笔记 —— Spring Cloud Zipkin 简介和安装的基础上,我们创建一个项目,来在项目中实现 Sleath、Zipkin、RabbitMQ 的链路追踪1.创建一个 Spring Boot 项目 zipkin01,添加 Web、Sleath、Zipkin、RabbitMQ、Stream依赖,Stream 依赖是方便发送到消息队列创建完项目,配置 application.propertiesspring.application.name=z

2020-11-19 00:23:28 441

原创 Spring Cloud 学习笔记 —— Spring Cloud Zipkin 简介和安装

17.ZipkinZipkin 是 Twitter 公司开源的分布式追踪系统,有两部分:Zipkin Server 和 Zipkin Client;Zipkin Server 分析展示日志,Zipkin Client 收集不同语言数据日志,上报给 Zipkin Server17.1 准备工作搭建一整套的收集日志和展示日志的功能,除了 Zipkin 收集之外,还要有存储日志的 ElasticSearch 、发送的工具 RabbitMQ 和可视化工具 es-head。(1)es-head 安装方法①

2020-11-18 12:50:05 204

原创 Spring Cloud 学习笔记 ——Spring Cloud Sleath 收集异步任务信息

收集异步任务信息直接上步骤代码:在启动类上加上 @EnableAsyn 注解,开启异步调用@EnableAsync@SpringBootApplicationpublic class Sleath2Application { public static void main(String[] args) { SpringApplication.run(Sleath2Application.class, args); } @Bean RestTem

2020-11-15 17:08:26 366

原创 Spring Cloud 学习笔记 ——Spring Cloud Sleath 简介及 HelloWorld

Spring Cloud Sleath16.1 简介在大规模分布式系统中,一个完整的系统是由很多不同的服务共同支撑的。不同的系统可能分布在上千台服务器上,横跨多个数据中心,一旦系统出现问题,此时定位就比较麻烦,这个时候就需要分布式链路追踪在微服务环境下,中型的互联网公司,一次请求涉及的服务间调用可能由上百次,一旦请求出问题,需要考虑很多东西:如何快速定位问题如何快速确定此次请求,都涉及到哪些服务到底是那个服务出现问题要解决这些问题就涉及到分布式链路追踪分布式链路追踪系统主要用了跟踪服务局调

2020-11-13 10:54:29 389

原创 Spring Cloud 学习笔记 ——Spring Cloud Stream 定时任务(延迟发送)

定时任务定时任务中,每天的固定时间设置可以使用 Quartz 表达式,比如每天凌晨 3 点备份等等,但是一些特殊的定时任务,比如炸弹还有三分钟爆炸,你不知道什么时候触发炸弹的倒计时,有些业务没有固定时间的延迟触发等,可以使用 RabbitMQ 结合 Spring Cloud Stream 来解决。首先需要下载一个 延迟的插件rabbitmq插件rabbitmq-delayed-message-exchange由于我的 RabbitMQ 是 3.8.9 ,所以下载的是 3.8.9由于 do

2020-11-08 15:38:12 1185

原创 Spring Cloud 学习笔记 ——Spring Cloud Stream 消息分区

消息分区通过上一次Spring Cloud 学习笔记 ——Spring Cloud Stream 消息分组,可以使 RabbitMQ 消费者集群中的消息只会被消费一次,如果想相同特征的消息总是被集群中的固定的一个服务消费,该如何配置呢?可以通过消息分区来解决这个问题*注意消息分区要在消息分组的基础之上操作配置 application.properties# 消费者的配置# 开启消息分区,spring.cloud.stream.bindings.javaboy-input.consumer.p

2020-11-08 14:10:42 449

原创 Spring Cloud 学习笔记 ——Spring Cloud Stream 消息分组

消息分组默认情况下,如果消费者是一个集群,此时,一条消息会被多次消费。首先把项目打包,然后分别运行如下命令java -jar stream2-0.0.1-SNAPSHOT.jarjava -jar stream2-0.0.1-SNAPSHOT.jar --server.port=8081通过不同端口,运行两个服务访问其中一个服务的 hello 接口,会给队列中发送 “hello spring cloud stream!” 的消息可以看到两个服务都收到了这条消息,可

2020-11-08 13:40:40 256

原创 Spring Cloud 学习笔记 ——Spring Cloud Stream 自定义消息通道

15.3 自定义消息通道在Spring Cloud 学习笔记 ——Spring Cloud Stream 概念及 HelloWorld中使用了默认的 Sink 通道,也可以自定义消息通道1.创建一个自定义消息通道接口类,起名叫 MyChannelpublic interface MyChannel { String INPUT = "javaboy-input"; String OUTPUT = "javaboy-output"; @Output(OUTPUT) M

2020-11-06 09:06:23 1058

原创 Spring Cloud 学习笔记 ——Spring Cloud Stream 概念及 HelloWorld

15.1 概念消息驱动框架是基于 Spring Boot,支持 RabbitMQ、Kafaka,可以做消息的发布、订阅、分区等Spring Cloud Stream 用来构建消息驱动的微服务,微服务之间的调用,比如用 RestTemplate、OpenFeign 等,这两种实际是基于 Http 调用,除了这种方式,也可以使用消息驱动,给中间件(如 RabbitMQ)发消息,RabbitMQ 收到消息后,然后根据 RabbitMQ 的内容处理消息。Spring Cloud Stream 比较适合耦合度比

2020-11-05 21:04:28 263

原创 Spring Cloud 学习笔记 ——Spring Cloud Bus 逐个刷新Spring Cloud Config

逐个刷新在Spring Cloud Bus 及 自动更新 config client 配置文件功能中,访问 config-server 的 bus-refresh 接口就能刷新各个 config-client 配置文件,看起来没有什么问题,也很方便,但是当我有一万个服务,而只要刷新其中的一些服务的配置文件时,这要配置就有点“费功夫”了,当然通过添加 actuator 依赖,使用 @RefreshScope 注解的内容没有这个问题。但是要在项目中用到配置文件的地方都加上 @RefreshScope 注解。这

2020-11-01 09:39:25 120 1

原创 Spring Cloud 学习笔记 ——Spring Cloud Bus 及 自动更新 config client 配置文件功能

Spring Cloud Bus 通过轻量级的消息代理连接各个微服务,可以用来广播配置文件的更改,或者管理服务监控。安装 RabbitMQdocker run -d --hostname my-rabbit --name javaboy-rabbit -p 15672:15672 5672:5672 rabbitmq:3-management首先给 config-client 和 config-server 加上 Spring Cloud Bus 依赖 <dependency>

2020-11-01 00:16:25 176

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 请求失败重试

13.6请求失败重试config-client 在调用 config-server 时,一样也可能发生请求失败的问题,这个时候,我们可以配置一个请求重试的功能。要给 config-client 添加重试功能,只需要添加如下依赖即可: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star

2020-10-30 23:52:39 748

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 动态刷新

13.5 动态刷新在 config server 中的配置文件更改后,默认 config server 可以及时感知到变化,但 config client 不会及时感知到变化,默认情况下,config-client 只有重启才能加载到最新文件,为了解决这个问题,介绍一种使用 spring-boot-start-acuator 解决办法1.在 config client 的 pom.xml 中添加 spring-boot-start-acuator 依赖 <dependency>

2020-10-28 20:54:48 331

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 服务化

13.4 服务化前面讲到了 Spring Cloud config 的 安全管理,但是例子中 config server 和 config client 都是单体服务,没有放到注册中心去,下面简单演示集成到 Eureka 服务。1.首先启动 Eureka 服务端,然后为了 config server 和 config client 能注册到 Eureka,都在 pom.xml 添加 Eureka Client 依赖 <dependency> <group

2020-10-28 19:46:34 107

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 安全管理

13.3 安全管理为什么要有安全管理呢,在前面说的对称和非对称中,都可以从地址栏里IP + 端口/{application}/{profile}/{label}中直接访问配置文件,得到明文,这是不安全,怎么能让人这么轻易的访问呢,这时候我们需要一种安全配置,也是非常简单的配置,引入 Spring-Security,Spring Security 是Spring Cloud 或 Spirng Boot 中常用的应用加密,与 Shiro 是相同的功能,下面实验一下项目引入 Spring Security。

2020-10-27 20:06:38 240

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 配置文件加解密(非对称加密)

13.2.3 非对称加密直接看步骤1.生成非对称加密密钥:在配置了 JDK 和 上节 JCE 的情况下,运行如下命令:C:\Users\Administrator>keytool -genkeypair -alias config-server -keyalg RSA -keystore F:\springcloudStudy\configRepository\config-server.keystore密钥库口令我输入的是六个1:111111;然后其他直接回车,在最后一步填是,结

2020-10-27 19:08:57 421 1

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 配置文件加解密(对称加密)

13.2 配置文件加解密如果没有加密配置,那么一些只有运维人员能看见的东西,开发人员也可以看见,在网上“删库跑路”的段子,可能就是真的了,所以这时要加密13.2.1 常见加密方案13.2.1.1 不可逆加密不可逆加密,就是理论上无法根据加密后的密文推算出明文。像加密的框架 Shiro(MD5、SHA) 、Spring Security 都是采用这种方式13.2.1.2 可逆加密...

2020-10-26 20:47:26 503

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 的 Server 的简单配置

Server 的配置1. 使用占位符灵活控制查询目录先来看配置好的 config-server 和 config-client 的配置文件config-sever 的 application.properties 文件spring.application.name=config-serverserver.port=8081# 配置文件仓库地址spring.cloud.config.server.git.search-paths=client1spring.cloud.config.serve

2020-10-23 09:50:56 268

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 的 Client 端搭建

Config Server一、基本搭建1 .首先创建一个 Spring Boot 项目作为 module ,项目名为config-server依赖需要添加 Web、Config Client 依赖项目创建完成2.项目创建成功后,再 resources 目录添加 bootstraps.properties 资源文件# 下面三行配置分别对应 config-server 中的{application}、{profile}、{label}占位符spring.application.name=c

2020-10-22 13:14:01 157

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 的 Server 端搭建

Config Server首先创建一个Config Server 工程,添加 Config Server 依赖:添加 Web、Config Server 依赖

2020-10-20 20:11:59 201

原创 Spring Cloud 学习笔记 ——Spring Cloud Config 介绍及准备工作

13.1 基本用法分布式配置中心解决方案国内360 QConf淘宝 diamond百度 disconf国外Apache Commonsownercfg4j都不如 Spring Cloud Config,因为可以和 Spring 家族其他组件无缝结合,非常方便13.1.1 简介Spring cloud Config 是一个分布式系统配置管理的解决方案,它包含 Client 和 Server。可以使用 SVN 或者 GIT;这里介绍 GIT,公司可能用 GITLAB;配置文件放在

2020-10-19 20:21:02 157 1

空空如也

空空如也

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

TA关注的人

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