![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
KnifeBlade
不要只是看起来很努力。
展开
-
Spring源码(三)
AOP(1)获取增强方法或增强器:扫描所有beanDefinition,获取所有标注了@Aspect注解的类 ;解析其中的增强方法,存入缓存(advisorsCache);原创 2020-01-18 09:14:13 · 371 阅读 · 0 评论 -
Spring源码(二)
Student student = (Student)beanFactory.getBean("beanName");(1)beanName转换:因为传入的beanName可能是beanName,也可能是别名,也可能是factoryBean,因此需要根据别名或者factoryBean获取到真实的beanName.(2)调用getSingleton()获取单例bean:首先检查单例缓存(si...原创 2020-01-15 09:01:23 · 487 阅读 · 0 评论 -
Spring源码(一)
Spring配置文件读取,创建BeanFactory:使用Resource接口的各种实现类(classPathResource、FileSystemResource等)将spring配置文件转化为Resource对象;Resource resource = new ClassPathResource("spring-config.xml");通过DocumentLoader对象或其实...原创 2019-12-22 18:14:12 · 141 阅读 · 0 评论 -
Bean的生命周期
1、实例化一个Bean--也就是我们常说的new;2、按照Spring上下文对实例化的Bean进行配置--也就是IOC注入;3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递的就是Spring配置文件中Bean的id值4、如果这个Bean已经实现了BeanFactoryAware接口,会调用它实现的s...原创 2019-10-03 16:11:49 · 92 阅读 · 0 评论