springboot自动配置个人理解

如若理解有误,请大家指正。

问题1:springboot如何做到自动配置的

答:springboot会根据注解@EnableAutoConfiguration来加载springboot-boot-autoconfigure jar包下的spring.factories文件,然后扫描其中的配置,自动注入该项目所需要的配置。

问题2:那么springboot如何知道那些配置是需要的?那些配置是不需要的?

答:springboot会在启动的时候会扫描该项目中所有jar包下的META-INF / spring.factories 文件,然后和上述的spring.factories文件做对比,得出我们该项目需要导入的配置。

问题3:那么我们在springboot中的application.properties文件的配置如何如何自动注入到项目中去的

答:springboot在启动的时候会自动加载application.properties到容器中。

eg: 以WebMvcAutoConfigurationAdapter为例(看下面相关代码),当spring.factories文件中有spring.mvc相关配置,会自动的注入到该类中去(否则用默认值),然后该实例被注入答容器中去。

	// Defined as a nested config to ensure WebMvcConfigurer is not read when not
	// on the classpath
	@Configuration(proxyBeanMethods = false)
	@Import(EnableWebMvcConfiguration.class)
	@EnableConfigurationProperties({ WebMvcProperties.class, ResourceProperties.class })
	@Order(0)
	public static class WebMvcAutoConfigurationAdapter implements WebMvcConfigurer {
		...
	}
	
	========================================================================================
	
	@ConfigurationProperties(prefix = "spring.mvc")
	public class WebMvcProperties {
		...
	}

参考:SpringBoot-starter的原理: https://blog.csdn.net/songzehao/article/details/100837463

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值