请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,preInstantiateSingletons方法里有段代码看不懂请教一下

if (isFactoryBean(beanName)) {
		Object bean = getBean(FACTORY_BEAN_PREFIX + beanName);
		if (bean instanceof FactoryBean) {
			final FactoryBean<?> factory = (FactoryBean<?>) bean;
			boolean isEagerInit;
			if (System.getSecurityManager() != null && factory instanceof SmartFactoryBean) {
				isEagerInit = AccessController.doPrivileged((PrivilegedAction<Boolean>)
								((SmartFactoryBean<?>) factory)::isEagerInit,
						getAccessControlContext());
			}
			else {
				isEagerInit = (factory instanceof SmartFactoryBean &&
						((SmartFactoryBean<?>) factory).isEagerInit());
			}
			if (isEagerInit) {
				getBean(beanName);
			}
}

我有两个问题:
1. isEagerInit这个变量是用来控制什么的?
2. 我进去isFactoryBean()方法发现里面用getSingleton()方法尝试从三级缓存里拿bean实例。那如果拿到了说明这个bean不是已经被实例化了吗,为什么还有后续的getBean()操作呢?

谢谢

正在回答 回答被采纳积分+3

1回答

提问者 ice_wolf 2020-02-20 17:54:15

老师这个问题我自己看明白了,请您不用回答了。貌似慕课网没有删除问题这个功能

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号