嵌入式Spring Cloud Config -如何检索普通文件?

fcg9iug3  于 2023-04-04  发布在  Spring
关注(0)|答案(1)|浏览(131)

我使用以下Gradle依赖配置了一个非常简单的Sping Boot 应用程序:

implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'

我们的想法是将Spring Cloud Config Server嵌入到应用程序中。
bootstrap.yml文件的内容如下:

spring:
  cloud:
    config:
      server:
        bootstrap: true
        git:
          username: git
          password: <personal-access-token>
          uri: <github-uri>

远程GitHub存储库包含这个application.yml文件:

server:
  port: 8280

当我启动Sping Boot 应用程序时,它会正确地检索远程配置,因为日志包含以下内容:

Tomcat initialized with port(s): 8280 (http)
...
Tomcat started on port(s): 8280 (http) with context path ''

我的问题是:如果我在远程GitHub存储库中放入一个名为dummy.txt的文件,与application.yml处于同一级别,那么从应用程序本身检索其内容的编程方式是什么?我知道使用分离的配置客户端和配置服务器,从配置客户端,我可以依靠this从配置服务器检索纯文本文件。当配置服务器嵌入到应用程序中时,如何实现相同的结果?

dhxwm5r4

dhxwm5r41#

到目前为止我得到的最好的解决方案是基于org.springframework.cloud.config.server.resource.ResourceRepository
在注解为@Service/@Component的类中,..只包含以下内容:

@Autowired private ResourceRepository resourceRepo;

接下来,假设默认配置文件名为default,并且配置存储在名为main的分支中,则以下代码行能够检索文件内容:

resourceRepo.findOne(null, "default", "main", "dummy.txt").getContentAsString(StandardCharsets.UTF_8)

相关问题