在应用程序上放置属性的区别是什么?Yml或bootstrap。穿弹簧靴的Yml ? 在日志记录。配置情况下,应用程序的工作方式不同。
当前回答
bootstrap的另一种用法。Yml是从kubernetes configmap和secret资源中加载配置。应用程序必须导入spring-cloud-starter-kubernetes依赖项。
与Spring Cloud配置一样,这必须在引导阶段进行。
从文档中可以看出:
spring:
application:
name: cloud-k8s-app
cloud:
kubernetes:
config:
name: default-name
namespace: default-namespace
sources:
# Spring Cloud Kubernetes looks up a ConfigMap named c1 in namespace default-namespace
- name: c1
因此,使用meta.name default-name存储在configmap资源中的属性可以被引用,就像application.yml中的属性一样
同样的过程也适用于秘密:
spring:
application:
name: cloud-k8s-app
cloud:
kubernetes:
secrets:
name: default-name
namespace: default-namespace
sources:
# Spring Cloud Kubernetes looks up a Secret named s1 in namespace default-namespace
- name: s1
其他回答
bootstrap的另一种用法。Yml是从kubernetes configmap和secret资源中加载配置。应用程序必须导入spring-cloud-starter-kubernetes依赖项。
与Spring Cloud配置一样,这必须在引导阶段进行。
从文档中可以看出:
spring:
application:
name: cloud-k8s-app
cloud:
kubernetes:
config:
name: default-name
namespace: default-namespace
sources:
# Spring Cloud Kubernetes looks up a ConfigMap named c1 in namespace default-namespace
- name: c1
因此,使用meta.name default-name存储在configmap资源中的属性可以被引用,就像application.yml中的属性一样
同样的过程也适用于秘密:
spring:
application:
name: cloud-k8s-app
cloud:
kubernetes:
secrets:
name: default-name
namespace: default-namespace
sources:
# Spring Cloud Kubernetes looks up a Secret named s1 in namespace default-namespace
- name: s1
我刚刚问了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或Bootstrap。properties用于从Spring Cloud Server获取配置。
例如,在My Bootstrap中。我有以下配置文件
spring.application.name=Calculation-service
spring.cloud.config.uri=http://localhost:8888
在启动应用程序时,它试图通过连接到http://localhost:8888来获取服务的配置,并查看Calculation-service。Spring Cloud Config服务器中显示的属性
您可以在启动compute - service时从它的日志中验证相同的内容
INFO 10988——[restartedMain] c.c.c configservicepropertysourcelocator:从服务器获取配置在:http://localhost:8888
这个答案在《面向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是启动spring引导应用程序和应用程序时加载的第一个文件。属性在应用程序启动时加载。 在引导中,你可以保留配置服务器的凭证等。Yml,在加载应用程序时需要,然后在应用程序中。你保留的属性可能是数据库URL等。
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder
- 将JSON字符串转换为HashMap