有没有人将 Spring Cloud Config 配置为使用本地 GIT 存储库而不是 GitHub?如果是这样,您可以分享您的配置吗?
问问题
11364 次
2 回答
11
Spring Cloud Config 服务器测试执行此操作。
uri 最终看起来像这样file:./target/test-classes/config-repo/
你可以在 bootstrap.properties 中做这样的事情
spring.cloud.config.server.git.uri=file:/path/to/your/git/repo
于 2014-11-14T22:00:40.670 回答
1
从 spring-cloud-config-montior 2.0.0.RELEASE 开始,FileMonitorConfiguration 会丢弃本地 git 存储库路径上的监控更改,除非它们被解析为 FileSystemResource。不幸的是,如果本地 git repo 路径像 file:/path/to/your/git/repo/ 一样,ApplicationContext DefaultResourceResolver 返回 FileUrlResource 而不是 FileSystemResource。我的解决方法是创建一个自定义的 ProtocolResolver,它是用于扩展 DefaultResourceLoader 的 SPI,如果本地 git repo 路径以“//”开头,则利用 FileSystemResourceLoader 返回 FileSystemResource。
SpringApplication app = new SpringApplication(ConfigserviceApplication.class);
app.addInitializers(new ApplicationContextInitializer<ConfigurableApplicationContext>() {
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
ProtocolResolver resolver = new ProtocolResolver() {
private FileSystemResourceLoader resourceLoader = new FileSystemResourceLoader();
@Override
public Resource resolve(String location, ResourceLoader resourceLoader) {
if(location != null && location.startsWith("//")) {
return this.resourceLoader.getResource(location);
}
return null;
}
};
applicationContext.addProtocolResolver(resolver);
}
});
app.run(args);
于 2018-07-19T10:27:20.227 回答