随着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*
方法设置字段?还有别的吗?
答案 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的一部分。