Spring
文章平均质量分 88
lsunwing
这个作者很懒,什么都没留下…
展开
-
《Shiro三部曲1》——前世今生
《Shiro三部曲1》——前世今生原创 2023-02-26 23:27:49 · 298 阅读 · 0 评论 -
Spring三级缓存的执行细节
都知道spring解决循环依赖问题,是通过三级缓存模式一级缓存:存储可以用的bean,Map<String, Object> singletonObjects二级缓存:存储bean的实例化对象,该对象还没有完全初始化好,Map<String, Object> earlySingletonObjects三级缓存:存储生成bean的工厂,Map<String, ObjectFactory<?>> singletonFactories...原创 2021-03-17 23:58:30 · 902 阅读 · 10 评论 -
Spring源码分析之——从component-scan看注解的运用
前言注解是的作用是实现某种功能的,一般情况下,注解被用作标注一类事物,扩展一种功能;1,标注一类事务很好理解,比如Spring Bean,当一个Pojo被@Component,@Service,@Repository等修饰的时候,它就表示是一个Spring Bean,在Spring初始化的时候就会被Spring容器初始化和管理;因为注解本身就是接口,而接口的核心作用就是启到标注一类...原创 2020-02-29 02:38:34 · 469 阅读 · 0 评论 -
Spring源码分析之——AOP动态代理的选择
上一篇《Spring源码分析之——AOP的原理及初始化细节》讲到AOP的原理和细节,这一篇补充一下动态代理的选择代码细节。我们知道动态代理分两种,JDK动态代理和Cglib动态代理,那么Spring选用的哪个呢?右半部分可以看到AopProxy下面有Cglib和JDK两种,至于创建哪种,是左边工厂DefaultAopProxyFactory负责创建的,带着这个图看源码。1、后置处...原创 2020-01-16 00:48:05 · 938 阅读 · 0 评论 -
Spring源码分析之——AOP的原理及初始化细节
废话不多说!!!!!!AOP 是 Aspect Oriented Programming 的缩写,译为面向切向编程。原理:Spring AOP的底层源码是基于动态代理和拦截器模式。对拦截器有疑问的可以看:设计模式之——拦截器模式为什么要动态代理?——答:因为业务类本身是不会主动调用切面逻辑(避免耦合),所以业务类必须被代理,由代理类负责调用业务类,并且调用切面;Spring ...原创 2020-01-03 17:58:25 · 1557 阅读 · 0 评论 -
Spring源码分析之—— Bean的实例化和依赖注入细节
本文探讨注解方式的Bean实例化和属性注入,像构造器和setter方式,大体差不多,先做个大概介绍:构造器方式,解析XML,用BeanDefinition存储构造信息,包含哪些属性作为构造器的参数,到时候一并构造; setter方式,解析XML,用BeanDefinition存储PropertyValues,在Bean实例化后通过set方式进行注入; 注解方式,首先要开启注解功能,注入是通...原创 2020-01-03 21:24:15 · 604 阅读 · 0 评论 -
Spring源码分析之——getBean细节
先看一下调用图,方便后面看代码@Testpublic void testGetBean() { // 业务代码 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-bean.xml"); XXXX xxxx = applicationContex...原创 2020-01-03 21:26:46 · 673 阅读 · 0 评论