eureka.instance.appname 與 spring.application.name 的區別
阿新 • • 發佈:2018-12-26
1,eureka.instance.appname
找到類 org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean.java
,其中有段:
@Data
@ConfigurationProperties("eureka.instance")
public class EurekaInstanceConfigBean implements CloudEurekaInstanceConfig, EnvironmentAware {
private static final String UNKNOWN = "unknown" ;
/**
* Get the name of the application to be registered with eureka.
*/
private String appname = UNKNOWN;
可以看到,應用名稱 就是在這裡配置的;
2,spring.application.name
找到類 org.springframework.cloud.netflix.eureka.EurekaInstanceConfigBean
,其中片段:
@Override
public void setEnvironment(Environment environment) {
this .environment = environment;
// set some defaults from the environment, but allow the defaults to use relaxed binding
RelaxedPropertyResolver springPropertyResolver = new RelaxedPropertyResolver(this.environment, "spring.application.");
String springAppName = springPropertyResolver.getProperty("name" );
if(StringUtils.hasText(springAppName)) {
setAppname(springAppName);
setVirtualHostName(springAppName);
setSecureVirtualHostName(springAppName);
}
}
可以看到,這裡是用 spring.application.name 配置的應用名稱;
3,結論
從以上可以看到,spring.application.name 的優先順序比 eureka.instance.appname 高,例如:
spring:
application:
name: jack
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
instance:
appname: client
兩者都配置的時候,註冊到Eureka Server上的 appname 是 jack