spring
文章平均质量分 50
wwjjhh102956
小学弟
展开
-
死磕Spring原理 -- 注入过程详解
本文着重分析执行流程。 DI流程简介 ioc容器:BeanFactory,工厂容器 初始化获取BeanDefinition:InstantiationStrategy,实例化策略 依赖注入:AbstractPropertyAccessor,属性访问器,用于各种方式的注入,如setter方法注入,构造器注入等 实例化Bean:BeanWrapper,Bean的包装类 DI过程概述 核心方法getBean() 非lazyInit在refresh的方法finishBeanFactoryInitializat原创 2020-08-17 12:14:34 · 818 阅读 · 1 评论 -
死磕Spring原理--Spring扫描包过程
无论使用哪种方式,最终都会使用ClassPathBeanDefinitionScanner.doScan()方法 使用JavaConfig方式 AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(XXX.class); 分成两步: 先加载主类这个BeanDefinition – register() 再根据主类上的@ComponentScan("xxx.yy")去扫描加载 –refresh原创 2020-08-17 12:03:49 · 693 阅读 · 0 评论 -
死磕Spring原理--AnnotationConfigApplicationContext加载Bean过程
在AnnotationConfigApplicationContext中有两个成员变量 //准备环境配置,加入一些配置的后置处理器,注解解析器等 private final AnnotatedBeanDefinitionReader reader; //扫描器,用于过滤出带注解的类,如Component、Configuration注解 private final ClassPathBeanDefinitionScanner scanner; AnnotationConfigApplicationCont原创 2020-08-17 12:00:23 · 1817 阅读 · 1 评论 -
死磕Spring原理--ClasspathXmlApplicationContext加载bean过程
执行ClasspathXmlApplicationContext构造器,最终会执行到下面这个方法 Tips:大部分spring的代码中,xxx()并不是实际工作的方法,而doXxx()才是。 public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, @Nullable ApplicationContext parent)throws BeansException { super(parent);原创 2020-08-17 11:56:37 · 615 阅读 · 0 评论