摘要: 一、背景 在我们编写程序的过程中,程序中可能随时发生各种异常,那么我们如何优雅的处理各种异常呢? 二、需求 1、拦截系统中部分异常,返回自定义的响应。 比如: 系统发生HttpRequestMethodNotSupportedException异常,我们需要返回如下信息。 http的状态码:返回 4 阅读全文
posted @ 2022-04-28 16:04 huan1993 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 一、背景 之前项目中用到了Apollo配置中心,对接Apollo配置中心后,配置中心的属性就可以在程序中使用了,那么这个是怎么实现的呢?配置中心的属性又是何时加载到程序中的呢?那么我们如果找到了这个是怎么实现的是否就可以 从任何地方加载配置属性、配置属性的加解密功能呢? 二、需求 从上图中得知,我们 阅读全文
posted @ 2022-04-25 13:20 huan1993 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 一、背景 我们在开发的过程中,经常会引入别人写的jar包实现某些功能。而别人的jar包一般都自动注入Spring容器中,假设别人都是通过@Bean或@Component注入的,并且没有加入@ConditionalXXX等注解,导致自己无法替换掉别人的实现,假设这个时候我就是想替换掉,那么该如何实现呢 阅读全文
posted @ 2022-04-21 10:39 huan1993 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 此处是我自己的一个理解,防止以后忘记,如若那个地方理解不对,欢迎指出。 一、背景 在我们写代码的过程中一般会使用 @Autowired 来注入另外的一个对象,但有些时候发生了 循环依赖,但是我们的代码没有报错,这个是什么原因呢? 二、前置知识 1、考虑循环依赖的类型 此处我们考虑 单例 + @Aut 阅读全文
posted @ 2022-04-19 19:05 huan1993 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 一、背景 在Spring的Controller中,我们通过@RequestParam或@RequestBody就可以将请求中的参数映射到控制层具体的参数中,那么这个是怎么实现的呢?如果我现在控制层中的某个参数的值是从Redis中来,那么应该如何实现呢? 二、参数是如何解析的 从上图中可以我们的参数最 阅读全文
posted @ 2021-12-11 19:18 huan1993 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 一、背景 Redis是一个非常流行的NOSQL数据库,拥有的数据类型非常丰富,此处我们简单记录一下在Centos7上是如何安装Redis6的。Redis的安装是推荐使用源码进行安装的。 二、安装步骤 1、安装gcc依赖 2、下载redis6 wget https://download.redis.i 阅读全文
posted @ 2021-12-11 15:11 huan1993 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 一、背景 在上一章节中,我们学会了如何搭建一个单节点的RabbitMQ服务器,但是单节点的RabbitMQ不可靠,如果单节点挂掉,则会导致消息队列不可用。此处我们搭建一个3个节点的RabbitMQ集群,用于解决这个问题。 二、介绍RabbitMQ的集群 1、集群类型 默认情况下的RabbitMQ集群 阅读全文
posted @ 2021-12-08 13:39 huan1993 阅读(298) 评论(1) 推荐(4) 编辑
摘要: 一、背景 最近项目中用到了RabbitMQ,但是发现自己本地没有安装,此文记录一下本地RabbitMQ的安装过程。注意不同的系统安装方式略有不同,此处我们记录的是Centos7的安装方式。 二、安装方式 此处我们通过rpm的方式来安装,官方介绍了2种方式来安装这些rpm。 1、第二种安装方式需要的依 阅读全文
posted @ 2021-12-07 10:46 huan1993 阅读(339) 评论(2) 推荐(0) 编辑
摘要: 1、背景 在我们系统中有一张表它的查询概率非常高。最近有个需求,需要对这个表增加一个字段,然而在增加字段的时候发现系统中有多个业务出现了超时操作,那么这个是什么原因导致的呢?经过查阅资料发现是数据库的MDL锁+事务导致的。 2、什么是MDL锁 MDL锁属于表级别的元数据锁。表级别锁分为数据锁和元数据 阅读全文
posted @ 2021-12-05 14:12 huan1993 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 一、背景 最近将我的Mac升级成了Monterey版本,结果发现之前的安装的VirtualBox虚拟机无法启动,报了如下错误。 Kernel driver not installed (rc=-1908) Make sure the kernel module has been loaded suc 阅读全文
posted @ 2021-12-03 12:16 huan1993 阅读(217) 评论(0) 推荐(0) 编辑