不明白DefaultListableBeanFactory.java
中使用了AccessController.doPrivileged()
方法,个人理解此方法好像是以当前上下文执行一些代码。javaUtilOptionalClass
这个属性,是用了JDK8的java.util.Optional
,此类是用来避免在Java中出现各种null的问题,但不知道为什么是写在了静态代码块中,而且是以动态加载的方式来加载的。
初始类
从DefaultListableBeanFactory.java
类的getBean()中,开始对整个工厂类进分析。
静态导入,如果你多次用到某个工具类的静态方法,可以使用静态导入,这样使代码更整洁美观。SimpleAliasRegistry.java
这个类实现了对Alias的一些操作。BeanFactory.java
接口定义一些对Bean的基本操作。DefaultSingletonBeanRegistry.java
对spring对Bean的一些操作做了各种封装,创建,消毁,依赖等。AbstractAutowireCapableBeanFactory.java
对AutowireCapableBeanFactory
定义的方法进行了实现,此类XmlBeanDefinitionReader.java
实现了用xml解析资源文件,并且实现了DefaultListableBeanFactory.java
类