您当前的位置: 首页 >  spring

qq_34412985

暂无认证

  • 5浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

初始化Spring Bean与延迟初始化Spring Bean

qq_34412985 发布时间:2020-04-06 12:34:36 ,浏览量:5

•Bean 初始化(Initialization)

      •@PostConstruct 标注方法

      •实现InitializingBean 接口的afterPropertiesSet() 方法

      •自定义初始化方法

            •XML 配置:

            •Java 注解:@Bean(initMethod=”init”)

            •Java API:AbstractBeanDefinition#setInitMethodName(String)

思考:假设以上三种方式均在同一Bean 中定义,那么这些方法的执行顺序是怎样?

•Bean 延迟初始化(Lazy Initialization)

      •XML 配置:

      •Java 注解:@Lazy(true)

思考:当某个Bean 定义为延迟初始化,那么,Spring 容器返回的对象与非延迟的对象存在怎样的差异?

非延迟初始化在spring应用上下文启动完成后,被初始化;延迟初始化时按需初始化;

finishBeanFactoryInitialization(beanFactory)#beanFactory.preInstantiatSingletons()初始化普通bean,非普通bean中一部分是内部容器自己帮忙初始化了,另一部分是延迟加载按需要初始化;

延迟加载与非延迟加载在bean的注册是没有区别的,按需要注册;在依赖查找和依赖注入的区别就体现在,非延迟查找在上下文启动之前就初始化了,延迟加载在初始化完成之后加载;在spring应用上下文生命周期之前后输出;

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.1835s