源码分析
文章平均质量分 92
Dnils
这个作者很懒,什么都没留下…
展开
-
【源码分析】Spring的循环依赖(setter注入、构造器注入、多例、AOP)
- Spring是所有对象都是通过getBean去获取的,即从三级缓存里面找,如果有就直接从缓存池中获取并返回,没有就执行创建- 对象创建的顺序决定了Spring能解决setter注入的循环依赖,而不能解决构造器注入的循环依赖。- 当发生了Spring无法解决的循环依赖时,会通过一些标记检测出来,并抛异常结束程序。- 三级缓存中存放的是ObjectFactory而不是Object- 无论有没有发生循环依赖,都会将实例化完的对象放入三级缓存池中,因为放入三级缓存池时并不知道会不会发生循环依赖。原创 2022-10-30 23:19:11 · 1701 阅读 · 1 评论 -
【源码分析】Spring中的设计模式——Context与Factory的关系
两个类都实现了同一个接口,但是其中一个类对接口的实现是通过调用另一个类的接口实现来实现的,这就是静态代理模式(也可以说是装饰器模式,这俩区别不大)这个例子中就是AbstractBeanFactory和AnnotationConfigApplicationContext都实现了BeanFactory,但是AnnotationConfigApplicationContext对BeanFactory的getBean方法是通过调用AbstractBeanFactory对BeanFactory的getBea原创 2022-10-31 19:56:49 · 635 阅读 · 0 评论 -
SpringSecurity+JWT实现登陆验证的思路(有一点点源码分析)
看了几个SpringSecurity+JWT的登陆demo,两个demo在一些细节实现上有一些不同,然后对于各个类和接口的关系比较模糊,就决定整理一下思路。先简单的借用一下一位UP 三更草堂的图了解一下登陆大概的流程和用到的类,这个他讲的还比较清晰。前后端分离项目登陆流程。SpringSecurity工作流程(过滤器链)登陆的后端实现:要实现登录验证主要需要实现上图过滤链的橙色方块部分的过滤器(UsernamePasswordAuthenticationFilter),这个过滤器的工作原理如下图原创 2022-04-04 18:17:53 · 1730 阅读 · 1 评论