我希望在多个应用程序之间共享一些属性,如下所示,我希望 能够覆盖值,所以如果我在application-dev.properties中有x = 1,我应该能够覆盖我的x 特定于应用程序的文件,即在我的情况下,test_app-dev.properties包含x = 2。因此,当我打电话给http://local主机:8888 / test_app / dev x = 1时,一切都压倒了。文件在git中。应该不是返回x = 2还是我误解了共享属性的意图?
在https://cloud.spring.io/spring-cloud-config/single/spring-cloud-config.html的“ 2.1.5与所有应用程序共享配置”中。它说:
使用基于文件的存储库(即git,svn和本机),在所有客户端应用程序(例如application.properties,application.yml,application-*。properties等)之间共享application *中具有文件名的资源。您可以使用具有这些文件名的资源来配置全局默认值,并在必要时将其设置为特定于应用程序的文件。
答案 0 :(得分:1)
最初,我自己也遇到了这个问题。看完@ user1549440答案后,对如何使用公共属性有了一个想法。将可共享的配置文件夹安排为第一个可搜索路径后,它可以按预期工作。刚刚添加了方便的解决方案的工作示例。
下面是configuration-server
中的示例配置。
server:
port: 8888
spring:
cloud:
config:
server:
git:
uri: file://app/configurations
default-label: master
search-paths:
- 'common*'
- 'petstore*'
- 'inventory*'
info:
app:
name: Configuration Server
description: Spring Cloud Configuration Server
version: 1.0.0
security:
user:
name: myname
password: mypass
下面是应用程序的示例文件夹结构。
├── app
│ └── configurations
│ ├── common
│ │ ├── application-dev.yml
│ │ ├── application-test.yml
│ │ ├── application-stg.yml
│ │ └── application-prod.yml
│ ├── inventory
│ │ ├── petstore-dev.yml
│ │ ├── petstore-test.yml
│ │ ├── petstore-stg.yml
│ │ └── petstore-prod.yml
│ └── petstore
│ ├── inventory-dev.yml
│ ├── inventory-test.yml
│ ├── inventory-stg.yml
│ └── inventory-prod.yml
答案 1 :(得分:0)
如果您使用的是基于git的存储库,请检查文件是否已提交。 似乎与线程中提到的问题相同-https://github.com/spring-cloud/spring-cloud-config/issues/32
希望会有所帮助。
答案 2 :(得分:0)
我在spring.cloud.config.server.git.searchPaths中发现订单不正确的问题