自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 SpringBoot启动流程

SpringBoot配置了web的启动流程,后续再分析Servlet中context的fresh方法

2023-11-07 15:21:31 39

原创 以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

原创 eclipselink读上来的数据无法使用流操作

eclipselink读取上来的数据无法使用流操作

2022-06-28 21:37:38 129

原创 利用反射的方法读取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关注的人

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