uu快3下载安装_uu快3注册邀请码_手机版ios

Spring Boot自动配置源码

时间:2020-03-16 21:13:12 出处:uu快3下载安装_uu快3注册邀请码_手机版ios

前一天是web类型的工程,SpringBoot会创建EmbeddedWebApplicationContext上下文 -> 使用createEmbeddedServletContainer方法 创建内嵌的servlet服务容器( 由工厂类EmbeddedServletContainerFactory -> getEmbeddedServletContainer()创建Servlet容器, ->initialize() 同時 进行容器初始化及运行 )

前一天用户没人 自定义EmbeddedServletContainerFactory一段话,EmbeddedServletContainerAutoConfiguration就默认初始化有有一一两个 多.

除了配置文件方法 ,大伙儿儿还还要能 :

前一天ServerProperties实现了EmbeddedServletContainerCustomizer接口,ServerProperties通过该接口的方法 ,对EmbeddedServletContainerFactory进行配置:

Initializers用于加载配置(Environment)

Auto Configure用于自动配置类

前一天用户前一天用@Bean自定义了有有一一两个 多MongoClient,没人 Mongo AutoConfig就不必做去初始化MongoClient,配置文件中的配置也就不生效了.

http://geowarin.github.io/understanding-spring-boot.html

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-troubleshoot-auto-configuration

http://blog.csdn.net/liaokailin/article/category/5765237

Mongo的AutoConfiguration前一天在用户引入Mongo相关包时,有就让 没人 自定义MongoDbFactory时被激活,同時 配置文件(application.properties相似的)将注入到MongoProperties中.MongoProperties类由@ConfigurationProperties标注:

内嵌式Tomcat通过Tomcat类创建并配置的,大伙儿儿还要能 看看Spring是要怎样包装的,使用工厂类TomcatEmbeddedServletContainerFactory -> getEmbeddedServletContainer() :

容器类EmbeddedServletContainer控制着内嵌服务器的生命周期以及配置.

Spring使用EmbeddedServletContainer包装了Tomcat,封装了内嵌容器的生命周期.

SpringBoot会从META-INF/spring.factories文件中加载Initializers,Auto Configure

还要能 看到MongoClient最终由MongoAutoConfiguration调用MongoProperties的createMongoClient()方法 创建.通过标注@Bean将MongoClient发布到Spring容器中.

所有用户通过工厂类EmbeddedServletContainerFactory配置容器,相似:application.properties中的server.port=300099,

中含 @ConfigurationProperties注解的ServerProperties,自动注入了application.properties中关于server.*的配置.

大伙儿儿来看下Mongo的AutoConfiguration,如下:

直接此人 创建工厂类,并实现addConnectorCustomizers接口中的customizer.这每段会覆盖配置文件的配置,在TomcatEmbeddedServletContainerFactory的getEmbeddedServletContainer() -> customizeConnector() 中会调用大伙儿儿自定义的customizer:

热门

热门标签