文件系统后端
在 Config Server 中还有一个“native”配置文件,它不使用 Git,而是从本地类路径或文件系统(你可以通过 spring.cloud.config.server.native.searchLocations
指定任何静态 URL)加载配置文件。要使用 native 配置文件,请以 spring.profiles.active=native
启动 Config Server。
请记住,对于文件资源要使用 file:
前缀(默认情况下没有前缀通常是指类路径)。与任何 Spring Boot 配置一样,你可以嵌入 ${}
风格的环境变量占位符,但请注意,在 Windows 中绝对路径需要额外的 /
(例如,[/${user.home}/config-repo](file:///$%7Buser.home%7D/config-repo)
)。
searchLocations
的默认值与本地 Spring Boot 应用程序相同(即 [classpath:/, classpath:/config, file:./, file:./config]
)。这不会将服务器上的 application.properties
暴露给所有客户端,因为在发送到客户端之前,服务器中存在的任何属性源都会被移除。
文件系统后端非常适合快速上手和测试。要在生产环境中使用它,你需要确保文件系统是可靠的,并且在 Config Server 的所有实例之间共享。
搜索位置可以包含 {application}
、{profile}
和 {label}
的占位符。通过这种方式,你可以在路径中分隔目录,并选择一种对你来说有意义的策略(例如按应用程序的子目录或按配置文件的子目录)。
如果你在搜索位置中没有使用占位符,该仓库还会将 HTTP 资源的 {label}
参数附加到搜索路径的后缀上,因此属性文件会从每个搜索位置 以及 一个与标签同名的子目录中加载(在 Spring 环境中,带标签的属性优先)。因此,没有占位符时的默认行为与添加一个以 /{label}/
结尾的搜索位置相同。例如,file:/tmp/config
等同于 file:/tmp/config,file:/tmp/config/{label}
。可以通过设置 spring.cloud.config.server.native.addLabelLocations=false
来禁用此行为。