我们的SVN库在创建的时候使用了空库(推荐方式)创建的,这样就没有 trunk, branches, tags这些文件夹,也就是下面这个向导页的时候选择的是 Empty repository (recommended option):
这样我们的工程是这个样子的:
在配置 Spring Cloud Config 的客户端的时候我们需要配置下面四个属性:
spring.application.name=
spring.cloud.config.profile=
spring.cloud.config.label=
spring.cloud.config.uri=
除了 label 不知道怎么设置外,其他的都知道怎么配置,结果就是没办法找到 Spring boot 工程资源目录下的 properties 文件。通过 error stack 找到报错的代码:
而且 label 不可以为空,这里也就很明了,资源文件的查询路径是通过拼接的方式构建的。我就把资源文件 plato-dev.properties 文件从 src/main/resources 拷贝一份到 src 目录下并 commit 到 svn server,然后Config Client 的 bootstrap.properties 的写法如下:
spring.application.name=plato
spring.cloud.config.profile=dev
spring.cloud.config.label=src
spring.cloud.config.uri=http://localhost:7001/
server.port=7002
这样,通过浏览器测试发现可以访问到了。
网友在 spring cloud config 用svn做配置文件仓库 也发现了这个问题,他的建议其实就是文章最开头建 SVN 库的时候选择高亮的 Single-project Repository 选项,这样会自动产生需要的文件夹。
我的测试是在一个SVN管理下的工程里直接加文件的方式学习Spring Cloud Config, 也是偷懒了,如果需要 SVN 管理配置文件,可以新建一个Single-project Repository工程库,直接把配置文件放到 trunk 文件夹。