最近,我为公司业务构建了一个spring cloud配置服务器,配置服务器配置如flw:
spring:
application:
name: config-server
cloud:
config:
label: master
server:
git:
uri: http://gitlab.ugirls.com:9999/commonconfig.git
search-paths: db,redis
force-pull: true
default-label: master
repos:
project1:
pattern: project1-*
cloneOnStart: true
uri: http://gitlab.ugirls.com:9999/project1.git
project2:
pattern: project2-*
cloneOnStart: true
uri: http://gitlab.ugirls.com:9999/project2.git
因为我的项目有一些常见的配置文件,所以我把它放到commonconfig.git。
commonconfig.git 包含datasource-dev.properties,datasource-prod.properties
project1.git 包含application-dev.yml,application-prod.yml
到目前为止,看起来没问题,请访问http://localhost:8411/project1-application.xml即可。
{
name: "project1-application",
profiles: [
"dev"
],
label: "master",
version: "978c1dc67a6bb6672b7e7ae7620f2c5794897a31",
state: null,
propertySources: [
{
name: "http://gitlab.ugirls.com:9999/project1.git/application-dev.yml",
}...
并访问http://localhost:8411/datasource/dev仍然可以。
但是,.... 我的配置客户端项目:bootstrap.yml就像流程一样:
spring:
application:
name: project1-application
cloud:
config:
label: master
profile: ${spring.profiles.active}
uri: http://localhost:8411/
name: project1-application,datasource
它只读取application-dev.yml而不读取datasource.properties 像这样的日志:
Located environment: name=project1-application, profiles=[dev], label=master, version=978c1dc67a6bb6672b7e7ae7620f2c5794897a31, state=null
2018-01-26 13:54:26.613 INFO [datasource,redis_chat,redis_main,redis_rank,,,] 6064 --- [ main] b.c.PropertySourceBootstrapConfiguration : Located property source: CompositePropertySource [name='configService', propertySources=[MapPropertySource {name='configClient'}, MapPropertySource {name='http://gitlab.ugirls.com:9999/project1.git/application-dev.yml'}, MapPropertySource {name='http://gitlab.ugirls.com:9999/project1.git/application.yml'}]]
一旦我改变了 spring.cloud.config.name = datasource
它只会加载datasource-dev.properties
任何人都可以解释它,或者给我一些建议吗?谢谢
答案 0 :(得分:0)
Spring云配置服务器现在支持“复合存储库”设置,该设置可让您添加包含共享属性的存储库。
请参阅文档here。
对您来说,这就像:
spring:
profiles:
active: composite
cloud:
config:
server:
composite:
-
type: git
# Default URI is required to be present, even if not used
uri: blahblah
repos:
project1:
pattern: project1-*
cloneOnStart: true
uri: http://gitlab.ugirls.com:9999/project1.git
project2:
pattern: project2-*
cloneOnStart: true
uri: http://gitlab.ugirls.com:9999/project2.git
-
type: git
uri: http://gitlab.ugirls.com:9999/commonconfig.git
search-paths: db,redis