栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot启动流程和自动配置实现原理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot启动流程和自动配置实现原理

@SpringBootApplication+run()方法--加载一个应用所需要的所有资源和配置,最后启动一个应用实例;

run()方法--

public ConfigurableApplicationContext run(String... args)

run()方法主要创建一个应用上下文实例(应用上下文其实就是一个SpringBean工厂),这里具体的是创建了一个ConfigurableApplicationContext实例;

而Spring工厂的创建需要注册相应的beandefiniton,所以需要加载关于bean的定义相关配置;

这里通过load方法实现这一操作--
 

protected void load(ApplicationContext context, Object[] sources) {
		if (logger.isDebugEnabled()) {
			logger.debug("Loading source " + StringUtils.arrayToCommaDelimitedString(sources));
		}
		BeanDefinitionLoader loader = createBeanDefinitionLoader(getBeanDefinitionRegistry(context), sources);
		if (this.beanNameGenerator != null) {
			loader.setBeanNameGenerator(this.beanNameGenerator);
		}
		if (this.resourceLoader != null) {
			loader.setResourceLoader(this.resourceLoader);
		}
		if (this.environment != null) {
			loader.setEnvironment(this.environment);
		}
		loader.load();
	}

load()方法在preparecontext()方法中调用--

然后调用了applicationcontext的refresh() 方法,用来重启Spring工厂;

--加载bean定义就是创建beandefinition实例;---不是bean;

自动配置原理--约定大于配置

其中@EnableAutoConfiguration启动自动配置并导入相关的配置类;

@ComponentScan用来扫描和加载自定义配置

@EnableAutoConfiguration最终会导入一个自动配置类的列表;

未完待续___

(加载自动配置的具体实现代码流程以及如何何时使用这些自动配置来启动应用上下文,)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/591699.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号