
Spring
KnifeBlade
不要只是看起来很努力。
展开
-
Spring源码(三)
AOP (1)获取增强方法或增强器: 扫描所有beanDefinition,获取所有标注了@Aspect注解的类 ; 解析其中的增强方法,存入缓存(advisorsCache);原创 2020-01-18 09:14:13 · 422 阅读 · 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 · 583 阅读 · 0 评论 -
Spring源码(一)
Spring配置文件读取,创建BeanFactory: 使用Resource接口的各种实现类(classPathResource、FileSystemResource等)将spring配置文件转化为Resource对象; Resource resource = new ClassPathResource("spring-config.xml"); 通过DocumentLoader对象或其实...原创 2019-12-22 18:14:12 · 178 阅读 · 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 · 126 阅读 · 0 评论