在应用程序上放置属性的区别是什么?Yml或bootstrap。穿弹簧靴的Yml ? 在日志记录。配置情况下,应用程序的工作方式不同。


当前回答

引导。当你使用Spring Cloud并且你的应用程序的配置存储在远程配置服务器(例如Spring Cloud Config server)时,yml被使用。引导。Yml在application.yml之前加载

其他回答

引导。当你使用Spring Cloud并且你的应用程序的配置存储在远程配置服务器(例如Spring Cloud Config server)时,yml被使用。引导。Yml在application.yml之前加载

我刚刚问了Spring Cloud的人,我想我应该在这里分享我的信息。

引导。Yml在application.yml之前加载。

它通常用于以下情况:

当使用Spring Cloud Config Server时,你应该在bootstrap.yml中指定Spring .application.name和Spring . Cloud . Config . Server .git.uri 一些加密/解密信息

从技术上讲,引导。yml是由父Spring ApplicationContext加载的。父ApplicationContext在使用application.yml的ApplicationContext之前加载。

引导。Yml用于从服务器获取配置。它可以用于Spring云应用程序,也可以用于其他应用程序。通常是这样的:

spring:
  application:
    name: "app-name"
  cloud:
    config:
      uri: ${config.server:http://some-server-where-config-resides}

当我们启动应用程序时,它会尝试连接到给定的服务器,并根据运行/调试配置中提到的spring概要文件读取配置。

如果服务器不可达,应用程序甚至可能无法进一步进行。但是,如果本地存在与概要文件匹配的配置,则服务器配置将被覆盖。

好的方法:

维护一个单独的配置文件本地和运行应用程序使用不同的配置文件。

这个答案在《面向Java开发人员的微服务面试问题(Spring Boot, Spring Cloud, Cloud)》一书中有很好的解释 本地应用程序)由Munish Chandel,版本1.30,25.03.2018。

以下内容均选自本书,并合计学分 这个答案要交给这本书的作者,也就是Munish 昌德尔

application.yml

application.yml /应用程序。属性文件是特定于Spring Boot应用程序的。除非您更改了应用程序的外部属性的位置,否则spring引导将始终加载应用程序。Yml从以下地点出发:

/src/main/resources/application.yml

您可以在此文件中存储应用程序的所有外部属性。任何Spring Boot项目中可用的公共属性都可以在以下地址找到:https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html您可以根据应用程序的需要自定义这些属性。示例文件如下所示:

spring:
    application:
        name: foobar
    datasource:
        driverClassName: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost/test
server:
    port: 9000

bootstrap.yml

引导。另一方面,Yml是特定于spring-cloud-config的,在application.yml之前加载

引导。yml只在你使用Spring Cloud并且你的微服务配置存储在远程Spring Cloud配置服务器上时才需要。

关于bootstrap.yml的要点

当与Spring Cloud Config服务器一起使用时,您应该使用下面的属性指定应用程序名称和配置git位置。


spring.application.name: "application-name"
spring.cloud.config.server.git.uri: "git-uri-config"

当与微服务(除了云配置服务器)一起使用时,我们需要指定 使用以下属性配置服务器的应用程序名称和位置


spring.application.name: 
spring.cloud.config.uri: 

此属性文件可以包含与Spring Cloud环境相关的其他配置,例如eureka服务器位置、加密/解密相关属性。

在启动时,Spring Cloud使用应用程序的名称对Spring Cloud Config Server进行HTTP(S)调用,并检索该应用程序的配置。

应用程序。Yml包含微服务的默认配置,在引导过程中检索的任何配置(从云配置服务器)将覆盖application.yml中定义的配置

引导。Yml或bootstrap.properties

只有当您使用Spring Cloud并且应用程序的配置存储在远程配置服务器(例如Spring Cloud Config server)时,才会使用/需要它。

从文档中可以看到:

Spring Cloud应用程序通过创建“引导”上下文来操作,该上下文是主应用程序的父上下文。它负责从外部源加载配置属性,并解密本地外部配置文件中的属性。

注意引导。Yml或bootstrap。属性可以包含额外的配置(例如默认值),但通常你只需要在这里放置引导配置。

通常它包含两个属性:

配置服务器的位置(spring.cloud.config.uri) 应用程序名称(spring.application.name)

在启动时,Spring Cloud使用应用程序的名称对配置服务器进行HTTP调用,并检索该应用程序的配置。

应用程序。Yml或application.properties

包含标准应用程序配置——通常是默认配置,因为在引导过程中检索的任何配置都将覆盖这里定义的配置。