Spring技术内幕笔记(十)------lazy-init属性和预实例化

lazy-init属性和预实例化

在IOC容器的初始化过程中,主要就是对BeanDefinition的定义,载入,解析和注册。而我们所说的依赖注入是发生在应用第一次向容器所要bean的时候,也就是调用 getBean的时候。

spring在启动的过程中主要发生两个过程

  1. 初始化容器
  2. 对bean进行初始化并依赖注入(对no-lazy-init属性的bean)

我们所有说lazy-init就是懒加载,当一个bean的lazy-init属性为true的时候,在Spring启动的过程中它就不会进行初始化bean和依赖注入。

接下来我们看看她的具体实现,前面的初始化容器的代码就不看了,直接看实现preInstantiateSingletons方法

	@Override
	public void preInstantiateSingletons() throws BeansException {
		if (logger.isTraceEnabled()) {
			logger.trace("Pre-instantiating singletons in " + this);
		}

		// Iterate over a copy to allow for init methods which in turn register new bean definitions.
		// While this may not be part of the regular factory bootstrap, it does otherwise work fine.
		List<String> beanNames = new ArrayList<>(this.beanDefinitionNames);

		// Trigger initialization of all non
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值