Spring Cloud 知识点收集

application.yml与bootstrap.yml的区别

原文地址

说明:其实yml和properties文件是一样的原理,主要是说明application和bootstrap的加载顺序。且一个项目上要么yml或者properties,二选一的存在。

Bootstrap.yml(bootstrap.properties)在application.yml(application.properties)之前加载,就像application.yml一样,但是用于应用程序上下文的引导阶段。它通常用于“使用Spring Cloud Config Server时,应在bootstrap.yml中指定spring.application.name和spring.cloud.config.server.git.uri”以及一些加密/解密信息。技术上,bootstrap.yml由父Spring ApplicationContext加载。父ApplicationContext被加载到使用application.yml的之前。

例如,当使用Spring Cloud时,通常从服务器加载“real”配置数据。为了获取URL(和其他连接配置,如密码等),您需要一个较早的或“bootstrap”配置。因此,您将配置服务器属性放在bootstrap.yml中,该属性用于加载实际配置数据(通常覆盖application.yml [如果存在]中的内容)。

当然,在一些情况上不用那么区分这两个文件,你只需要使用application文件即可,把全部选项都写在这里,效果基本是一致的,在不考虑上面的加载顺序覆盖的问题上。
总结:bootstrap.yml 优先于 application.yml


注解@EnableDiscoveryClient,@EnableEurekaClient的区别

SpringCLoud中的“Discovery Service”有多种实现,比如:eureka, consul, zookeeper。

  1. @EnableDiscoveryClient注解是基于spring-cloud-commons依赖,并且在classpath中实现;
  2. @EnableEurekaClient注解是基于spring-cloud-netflix依赖,只能为eureka作用;

如果你的classpath中添加了eureka,则它们的作用是一样的。

相关文章:
spring cloud服务发现注解之@EnableDiscoveryClient与@EnableEurekaClient


eureka.instance.appname 与 spring.application.name 的区别

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


你可能感兴趣的:(Spring Cloud 知识点收集)