实例化过程
2020-08-02 22:38:02 14 举报
Java和spring实例化过程
作者其他创作
大纲/内容
preInstantiateSingletons预实例化
普通类的实例化过程
扫描.class文件
堆存储object
识别new关键字
User bean
加载到方法区
Map
Order.java
javac
方法区
update
put map
与普通类不同的是,Spring不是通过new,而是初始化Spring容器并且通过scan扫描解析bean的各种注解,然后放到Spring new的BeanDefinition对象中。为什么不直接new?因为它可能是原型对象,或者懒加载(@Lazy注解),现在不需要new。
获取Order的BeanDefinition,修改其中的属性,比如:setBeanClass(User.class)
运行main( )
beanClass : Order.class
Order.class
调用C++代码
Order bean
scan parse注解
Spring单例池
BeanFactoryPostProcessor扩展
Spring的实例化过程
scope : \"singleton\"
JVM
BeanDefinition接口,其子类为:isLazy、Description等跟注解有关的类
0 条评论
下一页