AutoConfiguration

类AutoServiceRegistrationAutoConfiguration

类 AutoServiceRegistrationAutoConfiguration 是标准的 @Configuration:

@Configuration
@ConditionalOnBean(AutoServiceRegistrationProperties.class)
public class AutoServiceRegistrationAutoConfiguration {

    @Autowired(required = false)
    private AutoServiceRegistration autoServiceRegistration;

    @Autowired
    private AutoServiceRegistrationProperties properties;

    @PostConstruct
    protected void init() {
        // failfast 检查
        // 如果 autoServiceRegistration 为空,并且开启了 failFast,则报错
        if (autoServiceRegistration == null && this.properties.isFailFast()) {
            throw new IllegalStateException("Auto Service Registration has been requested, but there is no AutoServiceRegistration bean");
        }
    }
}

类AutoServiceRegistrationProperties

配置项信息如下:

@ConfigurationProperties("spring.cloud.service-registry.auto-registration")
public class AutoServiceRegistrationProperties {

    /** 自动服务注册是否开启,默认为ture */
    private boolean enabled = true;

    /** 是否注册管理为服务,默认为true */
    private boolean registerManagement = true;

    /** 如果没有 AutoServiceRegistration ,是否应该在启动时失败,默认false */
    private boolean failFast = false;
    ......
}

备注:failFast 默认为 false,也就是说如果初始化时不做 failFast,即使 autoServiceRegistration 为空也不让启动失败。

TBD: 不确认上述情况发生时会是什么状况?是否有必要在配置文件中设置为 true?

类AutoServiceRegistrationConfiguration

类AutoServiceRegistrationConfiguration 基本上啥都不干,只是初始化 AutoServiceRegistrationProperties:

@Configuration
@EnableConfigurationProperties(AutoServiceRegistrationProperties.class)
public class AutoServiceRegistrationConfiguration {
}