在Spring-Cloud-Netflix中为AWS配置EurekaInstanceConfigBean(Brixton.RELEASE)

时间:2016-05-12 05:41:01

标签: java spring amazon-web-services spring-cloud netflix-eureka

随着Brixton Release Train的发布,我注意到EurekaInstanceConfigBean接口已经有了更新,具体来说,默认构造函数已经成为private,并且已经有了一个新的构造函数介绍了一个org.springframework.cloud.commons.util.InetUtils

的实例

使用Angel Release Train,许多在线示例(cloud.spring.io included)显示在AWS中工作时,此bean的配置类似于以下内容:

@Bean
@Profile("!default")
public EurekaInstanceConfigBean eurekaInstanceConfig() {
    EurekaInstanceConfigBean b = new EurekaInstanceConfigBean();
    AmazonInfo info = AmazonInfo.Builder.newBuilder().autoBuild("eureka");
    b.setDataCenterInfo(info);
    return b;
}

我理解我可以通过创建InetUtils的实例并将其提供给构造函数来实现此功能,但我对创建此{的最佳实践更感到好奇{1}}并将其配置为与AWS配合使用。

是仅仅想创建@Bean的实例,还是使用自动配置或特定的InetUtils注释,甚至只是用@Enable*方法设置字段?还有别的吗?

1 个答案:

答案 0 :(得分:2)

InetUtils是一个bean,只需注入它。

public EurekaInstanceConfigBean eurekaInstanceConfig(InetUtils inetUtils) {
    EurekaInstanceConfigBean b = new EurekaInstanceConfigBean(inetUtils);
    //...
    return b;
}

bean来自AutoConfiguration,特别是org.springframework.cloud.commons.util.UtilAutoConfiguration类,它是spring-cloud-commons jar的一部分。