自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AbstractRoutingDataSource实现多数据源切换以及事务中无法切换问题

为了实现数据源的动态切换,我们采用了AbstractRoutingDataSource结合AOP+反射来自定义注解。通过这种机制,我们可以在运行时根据自定义注解自动选择不同的数据源,从而实现灵活高效的数据访问策略。具体来说,我们首先创建了一个继承自AbstractRoutingDataSource的动态数据源类,该类能够管理多个数据源并根据线程上下文中的特定键值来选择使用哪一个数据源。接着,我们定义了一个自定义注解,用于标记需要切换数据源的方法或类。

2024-04-25 22:40:53 1333 6

原创 一文彻底分清缓存穿透、缓存击穿、缓存雪崩问题(含记忆技巧)

缓存穿透是指用户请求的数据在缓存中不存在即没有命中,同时在数据库中也不存在,导致用户每次请求该数据都要去数据库中查询一遍。如果有恶意攻击者不断请求系统中不存在的数据,会导致短时间大量请求落在数据库上,造成数据库压力过大,甚至导致数据库承受不住而宕机崩溃。那么,我们该怎么记忆缓存穿透呢?我们可以这么想,缓存穿透其实就是恶意攻击,就是有人想“穿”过你的防护网(缓存)来“偷”你的家(数据库),这也就是穿透。或者你这样想,有人想恶意攻击你的数据库,这是不是不好的行为,是不是小偷的行为!

2024-03-27 23:45:13 1645 10

原创 SpringBoot项目配置文件不生效问题解决

而pom类型通常用于组织和管理多个模块的项目,它本身不包含代码,只包含项目的配置信息和依赖关系。所以,它也就不会去寻找配置文件。一般我们使用pom都是在项目聚合的时候,父工程的pom文件里面使用。比如,我这个包含两个服务的RabbitMQ使用的demon。

2024-03-23 00:12:41 936 8

原创 Docker快速部署RabbitMq教程,这一篇就够了!

要快速部署RabbitMQ,可以使用Docker容器来简化过程。下面是使用Docker快速部署RabbitMQ的教程。

2024-03-15 23:46:57 1591 11

原创 回溯算法,你“回”了吗

回溯算法,又称为试探法,是一种通过穷举所有可能情况来找到问题的解的方法。回溯算法通常采用深度优先搜索的策略,从一个选择开始,不断地向某一方向前进,直到无法继续。此时,需要回退到上一步选择的其他分支继续尝试,直到找到问题的解或无法继续搜索。回溯算法的思想源于数学中的排列组合问题,通过尝试所有的可能性来找到问题的解。与穷举搜索相比,回溯算法具有剪枝操作,可以通过一些判断条件来减少搜索的路径,提高算法的效率。回溯算法虽然能够解决很多问题,但是,他并不是一个高效的算法。

2024-02-29 01:47:41 911 6

原创 深入理解单调栈算法,这一篇就够了

单调栈是一种特殊的栈,它的特点是栈中的元素始终保持单调有序。通常有两种单调栈,分别是单调递增栈和单调递减栈。单调递增栈顾名思义,栈内元素从栈底到栈顶递增有序,即栈顶元素最小,栈底元素最大。而单调递减栈则相反,栈内元素从栈底到栈顶递减有序,即栈顶元素最大,栈底元素最小。这种利用单调栈求解问题的思路通常可以简化算法,提高算法的效率。在解决问题时,我们需要仔细观察问题的性质,判断是否适用单调栈。如果问题符合单调栈的特点,我们就可以借助单调栈来解决问题,以达到优化算法效率的目的。简单的说,

2024-02-27 22:51:21 1685 6

原创 基于springboot接口的编写

目录1、模糊分页查询2、批量删除3、新增4、编辑此接口非彼接口。此接口是MVC的设计模式中的Controller层,一般我们会叫Controller层里的方法为接口。他们是负责接收前端或者其它服务的传来的请求,并对请求进行相应的处理,最终再将处理结果返回给前端或者其它服务。 1)Controller层在进行模糊查询操作的时候,往往有时候需要查询的参数很多,这时候也可以考虑使用实体类接收前端传参,更改如下:接收前端传参实体类代码如下: 2)service层定义service层接口(此接口

2024-02-24 20:07:21 748

原创 snmp协议开通教程

SNMP(Simple Network Management Protocol)是一种用于网络管理的标准协议,它属于TCP/IP协议簇的应用层协议。SNMP的主要目的是简化和标准化网络设备的监控和管理过程。它被设计用来管理网络中的节点,包括服务器、工作站、路由器、交换机以及其他网络设备。信息查询:获取网络设备的状态信息,如流量数据、设备状态等。信息修改:对网络设备的配置进行更改或调整。故障排查:检测网络中的问题并采取措施解决。性能管理:监控网络的性能指标,确保网络运行效率。发现网络问题。

2024-02-23 23:53:26 1247 6

原创 Promethues的Agent 模式代理转发的实施教程

为什么需要一个中间代理呢?这样加一层不是脱裤子放屁,多此一举吗?正常情况来说是多此一举。但是,在有些场景就是不得不加这一层。比如现在有A、B、C三台服务器。A和B服务器网络是互通的,B和C是网络互通的,A和C网络不互通。但是,此时promethues服务端是装在C服务器的,代理端agent是安装在A服务器的。这个时候因为A和C网络是不通的,所以安装在C服务器的代理端agent就无法将采集的指标数据推送到C服务器上的Prometheus服务端。这个时候,也就是需要使用promethues的agent模式。

2024-02-23 23:52:40 1230 4

原创 mybatis中一对多分页查询结果异常问题解决

这样虽然映射的时候可以一对多的映射,但是,调用查询sql方法getInWarehouse的时候,返回的结果如果入库单关联了两个设备,就会返回两条记录。更详细的说,就是原本是个入库单列表分页查询接口,现在需要在这个接口上面返回入库单关联的入库设备的信息。突然,想起来了,写代码的这个同事,上次就因为没有把目标分页的sql查询作为PageHelper.startPage()方法后第一个查询语句,导致分页出错。前端调试的时候分页查询的时候,传的pageSize是15,但是当前页展示的却只有11条记录。

2024-02-20 18:38:41 1516 8

原创 使用nginx代理转发JAVA服务对skywalking的请求

但是,在项目实施的过程中,往往都是各种千奇百怪的场景。-Dskywalking.collector.backend_service=10.121.17.8:11800 #这个地址更改为nginx所在服务器的地址,端口和nginx.conf里面配置的监听端口保持一致。当在skywalking管理界面能够出现你需要监测的服务实例的时候,就说明nginx代理转发对skywalking的请求成功了。指定配置启动nginx: nginx -c /usr/local/nginx/conf/nginx.conf。

2023-12-12 17:29:56 832 2

原创 HashMap源码史上最细解读(二)

本文,我们来解读hashmap的构造函数。提到hashmap构造函数,博主不仅想起曾经面试时被问到hashmap里面有几个构造函数时,竟然都没回答上来,哈哈,汗颜。不知道,大家在没有往下看的时候,是否也有不知道hashmap有几个构造函数的。哈哈,不知道的在评论区扣个1哈,让我瞅瞅有多少和我当初一样的。不过这问题都不大,只要你认真看完这篇博客,不仅会让你知道HashMap里面会有几个构造函数,而且每个构造函数具体都做了什么,也会让你有一个深刻的理解!

2023-11-30 22:38:54 1217 6

原创 HashMap源码史上最细解读(一)

不影响反序列化的时候对象的恢复:某些成员变量,例如:entrySet、modCount,只是为了辅助HashMap的内部实现或运行时使用,并不影响HashMap的状态恢复。这些成员变量与HashMap的结构、数据的存储和访问等没有直接关系。可通过其他方式恢复:有些成员变量的值,例如:size,可以通过其他方式重新计算或初始化。在反序列化过程中,可以根据恢复HashMap的键值对的数,来重新计算出成员变量size的值。

2023-11-30 00:43:40 936 2

原创 Java接口接收前端传参的字段类型为基本数据类型造成的异常解决

因为业务需求的需要,就新增了一个查询字段id,也就是根据id来筛选出列表中需要的数据。由于接口层代码,并没有什么逻辑处理,都是直接调用的业务层代码,所以就直接再业务层的第一行代码打了个断点,再次用postman测试。通过源码,可以得知:当我们在使用Long的自动拆箱的时候,返回的就是包装类Long的属性value。至此,我们知道原因所在之后,便可以把所有使用id字段的参数都改成使用包装类Long,便可。突然灵光闪现,我的业务层方法,这里接收的参数id还是使用的基本数据类型long。

2023-11-24 23:54:56 615

原创 Java服务突然无法启动的灵异事件处理

这个意思就是我在注入String类,但是从spring的bena容器里面却找不到。开什么国际玩笑,String类是jdk自带的类,我怎么会注入String?今天是个好日子,又是crud的一天,简简单单几个接口,写完就可以划水啦。然而,不出意外的话,就要出意外了。接口写完了,服务起不起来了。哎哟,我去,又要给我搞事情。事到如今,看来不能病急乱投医了,只能冷静、冷静,再冷静。往这个方法上面一看,我去,我什么时候在这个方法上面加了个@Autowired这个注解。结果还是一样的错误,一样的无法启动!

2023-11-24 23:53:50 581

原创 高频面试知识点ThreadLocal,看完必彻底搞懂(一)

相信参加过很多次面试的圣斗士都知道,关于ThreadLocal基本上是面试必问,而且对于大多数人来说,也都是害怕被问到这个问题的。当然,也包括博主我。虽然,每次拿起八股文,都会看看ThreadLocal。但是,看完也就那样,知道个名字,知道他是线程独有的变量,不被其他线程共享使用。然而,最终也就是停留在知道这个层面,人云亦云的去说。至于到底ThreadLocal是什么,为什么需要ThreadLocal,为什么有同步锁了,还需要ThreadLocal?

2023-11-05 22:56:58 540 8

原创 高频面试知识点ThreadLocal,看完必彻底搞懂(二)

从上图中,我们可以看出来,当指向ThreadLocal的强引用不存在的时候,垃圾回收器便会在下一次GC的时候,将其回收。//e不为空,要么就是是同一个key,直接覆盖value即可,要么就是哈希冲突了,这种情况不做处理,直接在往下寻址就可,还有一种情况就是不是同一个key,而是这个位置是一个key被回收,而value未被回收的Entry,此时用新的替换掉旧的即可。从上面的源码分析中,我们知道,真正的清理逻辑是在cleanSomeSlots()方法里面的,那么我们就看看,它里面做了什么处理。

2023-11-05 22:55:50 199

原创 Idea中maven突然不见了、pom.xml文件也变红未被识别问题解决

在一切都如往常一样,在写新需求和改leader提出的bug来回切换的过程中。我的右侧maven工具栏没了,pom.xml也爆红了,变成了未被maven识别的状态。日常惊喜,日常的让我懵逼。难道是maven配置有问题?迅速打开settings。我丢,这里maven也不见了。这点意外,怎么能难倒我!自信的鼠标右击爆红的pom文件。我丢,添加成为maven文件的选项怎么没了。大脑飞速旋转,难道是maven插件没了?果然,是这个原因,maven插件没有勾选!勾选,重启idea,一切都恢复了正常。

2023-11-02 19:29:09 1774 2

原创 mybatis在使用in条件传参,查询出来的结果缺少问题解决

这里用的竟然是“#”,如果用#{xxx},mybatis会把他当做一个字符串,并且只会当他是一个值,而且只会按第一个值来查询,即“985”这个值来查询,所以查询出来的是满足equip_type_model_id=985的记录,而满足这一条件的也就是三条记录。打开数据库,查看了一下表里面的空调数量是正确的,和对接的平台的数量是一样的。经过对查询空调信息接口的调试,发现在查询分组的时候只查询到了三个分组,正常应该是有五个分组的。bug大概就是,前端页面展示的空调数量比所对接的平台上的空调数量少了两台。

2023-11-02 19:28:28 567 6

原创 maven私服仓库使用docker快速搭建教程

大家都知道,在实际的开发中,我们是都会有一些公共的模块,这些公共模块是每个模块或者服务都会使用的,比如一些工具类,异常类,公共响应体、基类、常量、枚举、自定义的注解等。这些东西都是会随着我们不断的开发需求而改变的。我们知道,如果没有搭建私服的情况下,就只能每次更新公共模块的代码,然后deploy到本地仓库。而使用私服,只需要把我们的jar包每次更新后推送到私服仓库,每次打开项目后,刷新一下maven就行了。而这只是使用maven私仓的其中一个好处。 docke

2023-10-29 13:39:42 1423

原创 Feign调用微服务接口405异常解决

继续百度,好像百度不到。没事,咱还有chatjpt,经过询问chatgpt得知,feign默认使用Spring的编码器来序列化请求参数,而Spring的编码器需要明确指定参数名称才能正确地将参数序列化成URL参数。经过百度查询,才发现原来在使用feign进行微服务之间远程调用的时候,需要加入相关的注解,@PathVariable:和路径变量传参进行绑定,@RequestParam:和传的参数进行绑定;为了验证,新的独立出来的消息服务能否被其他服务正常调用,就写了个测试接口,主要就是测试a服务调用消息服务。

2023-10-23 17:57:32 215

原创 PageHelper设置pageSize失效问题解决

该问题主要就是,同事写了一个查询关联设备的接口,在增加入库记录点击添加设备的时候,能够正确的分页查询到设备信息,而在出库的时候,分页查询却无效,返回的是全部设备记录。当时是很纳闷,同一个接口,就是传了不一样的操作类型,怎么就会一个分页正常,一个分页无效呢。但是,打开控制台看了下,返回结果确实是全部的结果,分页参数确实是不起作用,无效的。对,就是在进行出库操作的时候,他有两个查询sql。首先,把这个代码贴出来,看看有没有聪明的能够,提前发现问题在哪。但是,在这里,他需要分页的查询对象是第二个查询语句。

2023-10-20 15:21:28 764

原创 移动端和web端等多端重复提交问题解决

最近,在搞移动端接口开发。因为,移动端和web端是共用同一套接口,当移动端和web端在同时打开一个表单提交页面的时候,两者不管谁先提交,后者都能够再次提交,这就造成了重复提交的问题,导致数据重复或者错乱。一般情况下,防止重复提交的方式如下:1、前端控制,即提交按钮只能点击一次,点击后,提交按钮便置灰,不允许再次点击。2、数据库层面控制,这就需要想出满足业务需求的唯一索引约束,比如注册的手机号唯一。

2023-10-17 19:00:47 264 2

原创 Linux基本指令

opt:存放额外安装的软件。复制文件:cp gateway.jar gateway-bank-2023-08-12.jar // 把文件gateway.jar,复制为 gateway-bank-2023-08-12.jar 作为备份。r-x:拥有读和执行的权限,r--:只拥有读的权限,---:没有任何权限。比如:rwx:拥有读写执行的权限,firewall-cmd --permanent --zone=public --add-port=3306/tcp //添加3306端口,传输协议为tcp。

2023-10-10 10:45:29 162

原创 EasyExcel导出多列相同合并处理以及单列相同合并处理

其次,基本思路就是,通过继承CellWriteHandler接口编写合并策略(主要就是实现该方法afterCellDispose,该方法在对单元格的所有操作完成后调用),再构建表格处理对象ExcelWriter时,将所需合并策略传入即可。

2023-09-09 17:31:34 3403 6

转载 多线程学习之类锁、对象锁、方法锁

在Java中,对于synchronized关键字,大家看到的第一反应就是这个关键字是进行同步操作的,即得名“同步锁”。当用它来修饰方法和代码块时,默认当前的对象为锁的对象,即对象锁。当用来修饰类和静态方法时,默认当前的类为锁的对象所以,方法锁既可以是类锁,又可以是对象锁。主要就是看他修饰的静态方法还是非静态方法。对象锁修饰在方法上时,多个线程调用同一对象的同步方法时会阻塞,调用不同对象的同步方法时不会阻塞。可以看出,两个线程在调用不同对象的同步方法时,并未发生阻塞。

2023-02-22 22:08:17 574

原创 华为云ManageOne北向对接之基本名词概念(一)

私有云:FusionSphere OpenStack资源池、IaaS OpenStack资源池、FusionCompute资源池、FusionManager资源池、VMware资源池、Hyper-V资源池、PowerVM资源池、FusionInsight资源池。3、VDC是ManageOne运营面进行资源分配的单位,是虚拟的概念,主要作用是在分级运营的场景下,起到控制配额、用户权限的作用。近来,在做华为云的对接工作,所以,特作此记录,方便以后查看,也可以给大家一个参考,如果有不对之处,敬请指正。

2022-12-15 23:22:24 2413

原创 Java一键生成PDF合同以及骑缝章、盖章处的精准盖章

最近项目做到根据订单生成pdf合同。要求像阿里云的合同一样,有骑缝章,并且合同末尾处要进行盖章。为了做出这个功能搜集了很多博主的内容,最后终于做出了。现在做一个从头到尾的详细总结,也供大家参考一下,免得向我一样搜罗太多资料,浪费时间。废话不多说 直接开始上代码。第一次写博客,可能有表达的不好的地方,望见谅。不明白的可以私信,看到了尽量解答。 涉及的依赖如下: <dependency> <groupId>com.it...

2021-12-17 17:42:17 6239 17

空空如也

空空如也

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

TA关注的人

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