- 博客(11)
- 收藏
- 关注
原创 fastjson-1.2.24漏洞复现
看完利用链分析后,我们来总结一下,整体来说就是fastjson是根据@type来进行反序列化类并且没有做任何限制,允许指定@type来反序列化任意类,所以导致了反序列化漏洞。
2024-07-04 15:55:40
1013
原创 Redis持久化之RDB&AOF学习笔记
RDB(Redis Database):在指定的时间间隔执行数据集的时间点快照。RDB是一个非常紧凑的文件。RDB在保存RDB文件时父进程唯一需要做的就是fork出一个子进程,接下来的工作全部由子进程来做,父进程不需要再做其他IO操作,所以RDB持久化方式可以最大化redis的性能。与AOF相比,在恢复大的数据集的时候,RDB的方式更会快一些。RDB数据丢失风险大。
2024-02-11 23:34:38
936
1
原创 Spring是怎样处理循环依赖的?
看这篇文章之前,建议先看看SpringBean生命周期这篇文章,如果对生命周期已经有了了解,那么可以跳过,直接看这篇文章简单理解就是A,B 两个bean相互依赖,A依赖B,B依赖AA->B、B->A大概就是这样看完源码之后,相信大家都有了一些了解,如果看完还是不太明白也没关系,自己跟着debug一遍然后做总结,加深印象,接下来我们对以上做一下总结吧。如果被问到Spring是如何解决循环依赖的?
2024-01-23 23:51:01
1183
1
原创 SpringBean生命周期是怎样的?
/从这里进入@Overridetry {...//实例化所有剩余的(非lazy-init 懒加载)单例,看到这个方法...finally {@Override//真正获取bean的方法方法覆盖(lookup-method or replaced-method)自定义代理**重点:**真正创建bean的方法(也是真正的Bean声明周期),doCreateBean@Override。
2024-01-21 23:58:53
1105
原创 SpringBean生命周期之初始化篇
调用Aware方法初始化之前回调BeanPostProcessor初始化Bean初始化之后回调BeanPostProcessor(代理对象也是在此生成)//校验安全管理器,一般没有= null) {else {//如果当前bean实现了BeanNameAware、BeanClassLoaderAware、BeanFactoryAware这三个Aware接口中的一个或多个,那么会在此方法里调用设置值//包装bean。
2024-01-20 16:27:06
489
原创 SpringBean生命周期之属性注入篇
内容比较干,要有点耐心哈~如果bean实例为null,那么跳过填充属性阶段在属性注入之前回调instantiationAware里的各种后置处理器根据byName、byType查找属性值@Resource、@Autowired注解注入进行set、byType、byName的属性注入(注意:最后这里才是真正的注入,前面只是查找属性值)/*** 属性填充* param beanName bean名称* param mbd bean定义* param bw bean包装器*/
2024-01-19 23:55:20
1322
原创 SpringBean生命周期之实例化篇
使用反射加载class推断需要实例化bean的构造器判断是否使用构造器注入如果使用,那么进行构造器注入完成后即返回结果不使用构造器注入则跳过执行第三点使用无参构造器实例化对象// 确保bean类在此时实际上已被解析,使用反射加载ClassClass
2024-01-17 08:00:00
957
原创 Spring之ignoreDependencyInterface方法
ignoreDependencyInterface方法是笔者在阅读Spring源码过程中遇到的,刚看到时还不明白其真正含义,导致笔者对此方法有所误解,冥思苦想许久,依然想不明白,决定做一下实验,做完实验后,恍然大悟!!!ignoreDependencyInterface方法是用来忽略接口实现类和普通类set注入的不论是接口实现类还是普通类,都能进行配置忽略set注入(可以通过其他注入方式进行依赖注入)
2024-01-02 22:46:10
1064
原创 Java SPI与Spring SPI全面解析(源码级别讲解)
在这个案例里我们就以智能电风扇为例,一般智能电风扇的核心功能有: 开关、摆头、定时、调节档次。假设我们有A、B、C三个不同型号的智能电风扇,但是我们的主要功能是一样的,设想一下,如果不同型号的智能电风扇各写各的接口,那么对接起来是不是很麻烦。那么怎么解决呢?很简单,这个时候就用到了我们的SPI,我先定义一套接口规范,你按照我的接口规范实现,我就能通过某种服务发现机制找到你,使用这种方式的话,后续还有其他型号生产,只要按照这套规范实现,我都能找到。废话不多说,上代码。
2024-01-01 22:29:31
1699
原创 Spring是如何解析XML并组装BeanDefinition存入BeanDefinitionMap的?
Overridetry {//主要看这个,加载Bean定义,这个方法也是一个抽象方法,主要关注实现类AbstractXmlApplicationContext下面步入正题loadBeanDefinitions(DefaultListableBeanFactory beanFactory)这个方法大概做了哪些事?创建一个新的xml bean定义阅读器,设置默认资源加载器与环境使用当前上下文的配置重新给bean定义阅读器设置资源加载器与环境。
2023-12-27 17:15:47
1394
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人