- 博客(18)
- 收藏
- 关注
原创 springCloud-分布式事务理解
总结一下上边说的废话,其实分布式事务没那么难理解,看了我这篇白话文之后,再去看网上那些专业词汇比较多的文章就容易理解了其实不管是那种分布式事务的实现,都有一个事务ID的,所以很容易就联想到微服务链路追踪。
2023-06-15 01:34:24
141
原创 springCloud-nacos简单使用(单机版)
发现此jar包nacos只更新到了2022年,所以总结就是nacos客户端对springboot的支持只到了2.x版本,所以如果是使用了springboot3.x版本的小伙伴,还是老老实实用springCloud吧,看下图可以看出,nacos对于springCloud的支持一直到了2023年。可以看到,我在配置中心只配置了server.port,那么修改这个属性的值为8070,再在本地telnet8070端口,是不通的。nacos.core.auth.server.identity.key : 登录名。
2023-06-13 18:37:53
1735
原创 spring-spring循环依赖&三级缓存
其实三级缓存也好,二级或者一级缓存也好,都能解决循环依赖的问题,也能解决spring容器关于存放生成的实例bean的问题。想来大家面试的时候,都被问到过三级缓存以及循环依赖,那么三级缓存到底是什么,又解决了什么问题呢。但是,三级缓存逻辑更清晰,不管是开发spring的也好,读源码的也好,都不会有太多的混乱。: 存放早起的对象,也就是A、B循环依赖的时候,先生成的那个不完成的bean。那么,spring容器又是怎么去解决循环依赖的问题呢,看下图。有以下两个程序,可以明显看到是循环依赖的代码。
2023-05-31 18:12:33
104
原创 spring-容器初始化结束发布的事件
Spring Boot 提供了 ApplicationRunner 和 CommandLineRunner 用于完成启动后的初始化工作,我们只要实现继承这个接口并实现其中的 run 方法就可以了。事件,用户只需要写一个事件监听器,监听这个事件,就能实现在spring初始化结束之后做一些事情。等看到了springboot源码之后,再进行补充。spring在容器结束时,会发布一个。
2023-05-31 15:20:48
289
原创 spring-扫描类
spring扫描类的时候,其实是把@Component传入的包名,转化为带斜杠的路径,传入进入,挨个扫描路径下边的文件夹和文件。由于jar包是在工作目录下的,而且jar包是有jvm加载的,所以spring不会去扫描jar包。这也是为什么需要用到jar包中的类时,就必须用@Bean去进行注入。
2023-05-30 20:17:36
97
原创 java并发编程-无解阻塞队列LinkedBlockingQueue
LinkedBlockingQueue与ArrayBlockingQueue的差别在数据结构,一个是链表,一个是数组,逻辑上没有太大差别,可以去看看我的另一篇文章。
2023-05-23 16:23:26
59
原创 java并发编程-有界阻塞队列ArrayBlockingQueue
条件锁的实现为上边这个类,也是AQS下的条件锁其实是AQS提供的一个特殊锁,允许用户在任意地方阻塞,在任意地方解阻塞用户只需根据自己的条件去判断使用,所以它才叫条件锁。
2023-05-23 16:08:22
157
原创 java并发编程-线程池
把自己当成了一个线程,传进newThread中了,所以上边的start方法,其实是执行worker的run方法。因为worker、生成的线程、用户提交的线程,全部都是现成,所以会造成思绪乱,被绕进去的感觉。可以看到,如果设置了线程最大存活时间,则使用线程最大存活时间去拉取,否则,直接阻塞拉取。可以看到,其实实际执行的是用户提交的线程中的run方法。可以看到,用户提交的任务被当成了普通的成员变量了。因为线程池的代码太多,就只列举出来重要的部分。那么看来,核心部分应该是在提交线程的地方了。
2023-05-20 19:02:51
144
1
原创 java并发编程-ReentranLock详解
ReentranLock实例化对象时,实际使用了它的内部类而点开Sync,可以看到这个类继承了,也就是我们平时所说的AQS而Sync又有两个子类FairSync,如下代码段所示最小节点全类名为java.util.concurrent.locks.AbstractQueuedSynchronizer.Node: shared模式: 独占模式: 队列模式,或者说节点类型,值为上边两个的值,SHARED 或者 EXCLUSIVE: 存储当前节点对应的线程: 同步状态、锁类型、节点类型,
2023-05-20 16:13:53
388
1
原创 java并发编程-synchronized锁升级
因为synchronized是不公平锁,而且会有锁升级过程,升级为重量级锁时由于操作系统介入导致性能下降,所以synchronized一般会应用在线程争抢不激烈、程序执行时间较快的地方。
2023-04-14 10:39:26
85
原创 tomcat-启动流程
创建三个class类,commonClassLoader,加载tomcat中lib下的jar包。catalinaLoader : 用于加载服务器的jar包。
2023-04-10 18:46:07
86
原创 tomcat-加载流程
创建三个class类,commonClassLoader,加载tomcat中lib下的jar包。catalinaLoader : 用于加载服务器的jar包。
2023-04-10 18:45:07
178
1
原创 深入理解tomcat8.5机制
tomcat采用发布、订阅事件进行整个流程处理,事件监听器主要为以下几个在==LifecycleBase.addLifecycleListener(LifecycleListener listener)==方法订阅,==在LifecycleBase.fireLifecycleEvent(String type, Object data)==方法消费新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:C
2023-04-01 19:22:35
411
原创 java-反射学习笔记
目录技术简介使用场景反射机制原理以及使用方法反射机制原理常用方法获取 Person 类对应的 class 对象获取 class 对象的三种方法获取成员变量信息获取方法信息获取构造器信息通过 class 对象获取 Person对象的信息写在结尾技术简介反射是java中一个重要的技术,将类的各个部分封装为其他对象(Class),以致于能在程序运行期间获取一个类的所有信息。使用场景在框架中被大量使用,是框架设计的灵魂,尤其是使用最广泛的 spring 的 IOC,用以提高程序猿的开发效率。在 ida
2020-05-28 00:07:17
390
原创 spring framework源码从下载到导入eclipse
将spring framework源码导入到eclipse中下载spring framework源码源码导入eclipse中下载spring framework源码从spring官方网站上下载下来spring framework源码 下载地址1.点击spring framework 2.点击小猫头像,进入到git3.下载源码,喜欢使用zip的可以直接点击 Download ZIP ,喜欢git的可以使用git源码导入eclipse中亲测:不需要下载gradle,使用eclipse自带的gr
2020-05-27 12:43:00
405
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人