自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 @Lazy注解原理

假设 A 先加载,在创建 A 的实例时,会触发依赖属性 B 的加载,在加载 B 时发现它是一个被 @Lazy 标记过的属性。后续A中调用B的方法时,由于注入的B是代理对象,所以会去走获取bean的流程,因为前面已经注册了B的bean,所以可以直接从一级缓存中取到B的bean。bd.isLazyInit())条件表示,不是抽象类并且是单例,且不是懒加载的bean(类上面没有标记@Lazy注解),就走getBean方法的逻辑去创建bean,否则什么也不会做,此时注册B的bean,由于if (!

2024-09-25 11:40:39 851

原创 Spring不能处理的循环依赖

Spring 为我们解决了循环依赖的问题。prototype 类型的循环依赖constructor 注入的循环依赖@Async 类型的 AOP Bean 的循环依赖这些解决不了的场景都可以通过 @Lazy注解来解决,@Async的场景还可以通过@DependsOn注解解决。

2024-09-25 11:26:18 1075

原创 JUC学习笔记(三)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录八、共享模型之工具--JUC8.1 AQS 原理1. 概述2 实现不可重入锁自定义同步器自定义锁3.心得起源目标设计1) state 设计2)阻塞恢复设计3)队列设计8.2 ReentrantLock 原理1. 非公平锁实现原理加锁流程解锁流程加锁源码解锁源码2. 可重入原理3. 可打断原理不可打断模式可打断模式4. 公平锁实现原理5. 条件变量实现原理await 流程signal 流程源码8.3 读写锁1. ReentrantR

2024-09-16 21:18:38 1208

原创 JUC学习笔记(二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录四、共享模型之内存4.1 Java 内存模型4.2 可见性退不出的循环解决方法可见性 vs 原子性模式之 Balking1.定义2.实现4.3 有序性原理之指令级并行1. 名词2.鱼罐头的故事3.指令重排序优化4.支持流水线的处理器诡异的结果解决方法原理之 volatile1.如何保证可见性2.如何保证有序性3.double-checked locking 问题4.double-checked locking 解决happens-

2024-09-16 20:51:41 1695

原创 JUC学习笔记(一)

文章目录一、进程与线程1.1 进程与线程1)进程2)线程3)二者对比1.2 并行与并发注意二、Java线程2.1 创建和运行线程1)直接使用 Thread2)使用 Runnable 配合 Thread3)FutureTask 配合 Thread2.2 查看进程线程的方法1)windows2)linux3)java2.3 原理之线程运行栈与栈帧线程上下文切换2.4 常见方法2.5 start 与 run2.6 sleep 与 yieldsleepyield线程优先级2.7 join 方法详解为什么需要 jo

2024-09-16 20:50:28 1849

原创 Redisson实现分布式锁

对本文进行了总结记录。

2024-09-13 16:01:36 1220

原创 策略模式的应用

系统有一个需求就是采购员审批注册供应商的信息时,会生成一个供应商的账号,此时需要发送供应商的账号信息(账号、密码)到注册填写的邮箱中,通知供应商账号信息,当时很快就写好了一个工具类,用来发送普通的文本邮件信息。但是随着系统的迭代,后面又新增了一些需求,比如一些单据需要在供应商确认时,发送一条站内信到首页,这样采购员登录时就可以看到最新的单据信息,进行相应的处理;

2024-07-06 22:28:06 1216

原创 mybatis-plus参数绑定异常

最近要搞个发票保存的需求,当发票数据有id时说明是发票已经保存只需更新发票数据即可,没有id时说明没有发票数据需要新增发票;然后看到updateById方法的逻辑后,点了下baseMapper的updateById方法,因为装了插件,所以旁边有个小图标,点了下直接跳转到了自定义Mapper接口的updateById方法。好家伙,参数不对也调到了这个方法,然后因为我传的是Invoice类型的参数,而这个方法的接收参数第一个是InvoiceDto类型的参数,类型不匹配然后报错了。

2024-07-06 14:38:47 406

原创 SpringCloud Gateway动态添加路由不重启

在微服务项目中,SpringCloud Gateway扮演着极为重要的角色,主要提供了路由、负载均衡、认证鉴权等功能。本文主要讲解如何实现网关的自定义动态路由配置,无需重启网关模块即可生效。

2024-06-12 19:41:38 1113 2

转载 Seata--分布式事务中的AT模式方案

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback),和社区一起共建开源分布式事务解决方案。Fescar 的愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题。

2024-05-25 11:10:45 62

原创 DS注解作用

在事务执行期间,如果这个方法调用了另一个方法,那么这个方法也会被代理对象所代理,也就是说,这个方法也会被切换到当前数据源,并且也会被包含在当前事务中。在多租户系统中,不同的租户可能需要连接不同的数据库,因此需要动态切换数据源。通过在注解中指定数据源的标识,可以让 MyBatis-Plus 框架自动切换到对应的数据源,从而实现动态切换数据源的功能。如果在调用另一个方法时,这个方法上也有@DS注解,那么这个注解会被代理对象所覆盖,也就是说,这个方法会使用当前数据源,而不是它本来应该使用的数据源。

2024-03-01 17:17:32 1111

原创 Linux部署多个jar包脚本

【代码】Linux部署多个jar包脚本。

2024-03-01 11:30:31 765

原创 Unirest工具类的使用

【代码】Unirest工具类的使用。

2024-02-25 14:01:36 504 1

原创 RestTemplate参数设置【post请求】

①post请求,contentType:application/json(使用了@RequestBody接收参数)②post请求,contentType:application/x-www-form-urlencoded。使用LinkedMultiValueMap设置参数,然后发起请求。使用HashMap设置参数,然后转json字符串发起请求。

2024-02-25 13:53:08 2001 1

原创 @Builder注解

● 如果需要在原来的基础上修改可以加 set 方法,final 字段可以不需要初始化。● 初始化实例对象生成的对象是不可以变的,可以在创建对象的时候进行赋值。● 它作用于类,将其变成建造者模式。● 它会生成一个全参的构造函数。● 可以以链的形式调用。

2024-02-24 10:10:48 417 1

原创 @SneakyThrows注解

也就是说,并不是我们忽略了异常,而是类似于Lombok的@Data注解,在编译时就已经把处理的代码嵌入到了class内。@SneakyThrows直接把捕获异常的代码嵌入到了class文件里。

2024-02-24 10:02:00 393 1

原创 Spring自动装配方式

Spring自动装配方式

2024-02-23 09:11:31 1131

原创 SpringBoot单元测试方式

①引入Test注解:import org.junit.jupiter.api.Test;①引入Test注解:import org.junit.jupiter.api.Test;③引入@RunWith(SpringRunner.class)注解。③引入@RunWith(SpringRunner.class)注解。①引入Test注解:import org.junit.Test;①引入Test注解:import org.junit.Test;②方法前面需要加public修饰。②方法前面需要加public修饰。

2024-02-23 08:45:57 731

原创 maven打包提示报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (defaul

【代码】maven打包提示报错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (defaul。

2024-02-22 08:57:20 520 1

原创 Linux防火墙常用命令

描述命令查看防火墙服务状态systemctl status firewalld查看防火墙状态firewall-cmd --state开启防火墙service firewalld start重启防火墙service firewalld restart关闭防火墙service firewalld stop查看防火墙规则firewall-cmd --list-all查看端口是否开放firewall-cmd --query-port=8080/t

2024-02-22 08:50:02 337 1

原创 Dockerfile和jar包不同目录处理

如果Dockerfile的全路径为/srm/myDockerfile/Dockerfile,而JAR文件位于/srm目录下,你可以在Dockerfile中使用相对路径引用JAR文件。这将在容器中启动你的Java应用程序,可以通过localhost:8080访问它。确保根据你的应用程序的实际需求修改Dockerfile和Docker运行命令。在这个Dockerfile中,工作目录被设置为/srm/myDockerfile,即Dockerfile所在的目录...

2024-02-21 17:07:44 506

原创 docker-compose部署jar包

Docker Compose是一个用来定义和运行复杂应用的Docker工具一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

2024-02-21 16:56:38 1440

原创 feign远程调用请求头设置参数

通过实现RequestInterceptor 接口,重写apply方法逻辑,设置相应的参数,此时在业务方法中远程调用对应接口时,都会携带这些参数,可在远程调用接口所在服务中进行解析使用。

2024-02-20 19:58:51 1562

原创 Linux安装RocketMQ

由于我电脑只有8g内存,分配了2g给虚拟机,现在可用内存为1g,所以需要将broker和nameserver的堆内存调小,可根据自己服务器可用内存调节大小。**namesrvAddr:**nameSrv地址 可以写localhost因为nameSrv和broker在一个服务器。**brokerIP1:**broker也需要一个公网ip,如果不指定,那么是服务器的内网地址,我们再本地无法连接使用。**autoCreateTopicEnable:**自动创建主题,不然需要手动创建出来。最终会生成一个jar包。

2024-02-20 19:49:20 1390

原创 Linux的scp命令

第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;第2个没有指定用户名,命令执行后需要输入用户名和密码;scp命令主要用于Linux服务器之间复制文件和目录。第1个指定了用户名,命令执行后需要再输入密码;

2024-02-19 17:18:36 339 1

原创 MinIO安装教程(Windows版)

访问地址:http://localhost:9090/login。

2024-02-19 16:39:57 737 1

原创 MySQL生产数据备份

对于系统来说,生产数据是非常重要的,有时候不小心删除了却找不回来就酿成了大祸。因此,定时备份生产数据是非常有必要的,即使不小心删除了全部数据,也可以使用备份数据进行回复。本文提供MySQL的备份脚本,可按自己的需求进行修改。

2024-02-19 15:14:52 926 1

原创 el-table渲染踩坑

本人前端不是特别熟,今天在弄一个弹窗表格功能时,发现只要点开某一行数据的弹窗再关闭,再点击其他弹窗时,发现最大数量都会以第一次为准,不是以当前数据行的为准。

2023-12-26 14:21:02 563 1

原创 feign调用接口成功后直接进入fallback回调方法排查

昨天下午上班需要写个远程调用接口获取文件的上传日期,但是我在客户端调用远程接口成功后并没有拿到数据,调试发现调用接口成功后直接进入了fallback回到方法,返回了null

2023-12-23 10:15:32 1703 3

原创 equals的一些细节。

前言:前段时间使用equals方法出现了一些小问题,我们往下看:代码一:public class TestEquals { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isSame() { //出错代

2020-12-02 14:31:14 184

原创 String转换成byte型数组的字节问题

前言:今天看视频敲代码学习UDP时,出现了输出乱码的问题,我们往下看代码一如下:import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;//UDP:不需要等服务器启动才运行,直接运行客户端不会报错,相当于发短信/*TCP:需要连接服务器,如果服务器没启动,客户端直接运行,会报错(ConnectException),相当于打电话,两者要同时在线。(三次握手,四次挥手)

2020-11-28 22:02:22 2401 3

原创 Animal animal = new Animal()究竟哪个是对象

前言:在上课时被老师提问过一次,把这个记下来。Animal animal = new Animal()中,对象是animal 还是new Animal()呢?public class Animal { private String name; private String cry; public Animal(String name, String cry) { this.name = name; this.cry = cry; } public String toStrin.

2020-11-27 17:48:38 1336

空空如也

空空如也

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

TA关注的人

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