不明白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类