- 博客(8)
- 收藏
- 关注
原创 利用openwrt和frp实现内网穿透
frp分为frps和frpc,frps用于服务器,frpc用于客户端,本示例将公网ecs作为frp的服务器,openwrt路由器作为frp的客户端。
2024-01-25 15:45:06 1297 1
原创 SpringBoot中的bean的生命周期源码阅读
在Spring中,bean的生命周期如下图:下面依据图中bean的生命周期一步一步的查看源码:在conftext中具体实例化bean对象的方法是:finishBeanFactoryInitialization(beanFactory)。今天具体看一下其执行流程:实例化Bean的总体流程假设此时需要实例的bean为A具体执行实例化的方法解决循环依赖假设使用的是字段注入。先判断是否打开了循环依赖,然后将bean的ObjecFactory加到入三级缓存,将其从二级缓存中移除,并将bean加入到reg
2023-12-09 13:56:04 60
原创 ConfigurationClassPostProcessor详解
预先了解一下ConfigurationClassPostProcessor是怎么来的:在context的refresh阶段中调用invokeBeanFactoryPostProcessors函数时首先执行接口BeanDefinitionRegistryPostProcessor#postProcessBeanDefinitionRegistry,在执行其父接口BeanFactoryPostProcessor中的postProcessBeanFactory方法。
2023-12-07 11:15:45 63
原创 以RetreentLock为例解析AQS源码
trylock只有非公平锁的实现,走的是nonfairTryAcquire,等价于RetreentLock非公平锁的lock()。Retreent的lockInterruptibly无论是公平锁还是非公平锁都是调用的AQS的lockInterruptibly。RetreentLock的释放锁无论是公平锁还是非公平锁都是unlock()方法,且只有一个unLock释放锁的方法。tryRelease在AQS类中是一个抽象实现,抛出异常,具体的实现在RetreentLock中。
2023-06-13 00:04:23 88
原创 ThreadPoolExecutor源码分析
上述addWorker中, w = new Worker(firstTask);t.start();有个打印32位二进制的方法。
2023-05-20 15:17:12 61 1
原创 利用反射的方法读取hashMap中的值
package HashMap的源码阅读;import java.lang.reflect.Field;import java.util.HashMap;/** * @author:zhoujianwei * @date: 2019-09-02 * @description: **/class User{ public String name; public...
2019-09-03 15:28:48 1415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人