本文基于:spring-boot-2.3.12-RELEASE、spring-cloud-Hoxton.SR12(即2.2.9-RELEASE)
通过前面 :
1、【Springboot之事件管家SpringApplicationRunListeners事件管理机制源码分析】
2、【Spring Cloud 之 EurekaServerMarkerConfiguration.Marker 与 EurekaServerAutoConfiguration神仙打架】
3、【Spring Cloud之BootstrapApplicationListener巧妙构建双容器】
大致看清了eureka的启动流程,这一篇我们具体分析一下 EurekaServerAutoConfiguration 做了哪些事情;
@Configuration(proxyBeanMethods = false)
@Import(EurekaServerInitializerConfiguration.class)
@ConditionalOnBean(EurekaServerMarkerConfiguration.Marker.class)
@EnableConfigurationProperties({ EurekaDashboardProperties.class,InstanceRegistryProperties.class })
@PropertySource("classpath:/eureka/server.properties")
public class EurekaServerAutoConfiguration implements WebMvcConfigurer {
... 省略...
}
我们先来分析一下类定义:
代码 | 分析 |
---|---|
@Configuration(proxyBeanMethods = false) | Lite 轻量级模式,@Bean 修饰的方法不会被代理。 |
@Import(EurekaServerInitializerConfiguration.class) | 向容器中注入一个EurekaServerInitializerConfiguration配置类 |
@ConditionalOnBean(EurekaServerMarkerConfiguration.Marker.class) | (父)容器中有Marker的beandefinition的前提下EurekaServerAutoConfiguration 才能被解析 |
@EnableConfigurationProperties({ EurekaDashboardProperties.class, InstanceRegistryProperties.class }) | 配置文件映射类 |
@PropertySource(“classpath:/eureka/server.properties”) | 配合@EnableConfigurationProperties注解将配置文件里属性绑定到对象 |
implements WebMvcConfigurer | WebMvcConfigurer配置类其实是Spring内部的一种配置方式,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter等等的东西对springmvc框架进行配置 |
todo~~