将application.yml中的字符串列表加载到组件中

问题描述 投票:1回答:2

在stackoverflow上读了几个answers之后。我试图实现它的推荐方式,但我仍然没有在我的component中获取字符串列表。

这是我的application.yml文件

appName:
  db:
    host: localhost
    username: userX
    password: passX
    driverClassName: org.postgresql.Driver
  shipment:
    providers:
      supported1:
        - one
        - two

我的component课程是

@Component
@ConfigurationProperties(prefix = "appName.shipment.providers")
public class ProviderUtil {
  List<String> supported1;

  /* This class has other util methods as well */
}

在这里,我期待supported1将有onetwo字符串列表,但它是null。有人可以帮助这里发生什么以及如何解决它?

spring dependency-injection configuration spring-boot yaml
2个回答
1
投票

你的类路径是否有spring-boot-configuration-processor依赖?试着看看here

并且还将您的bean从@Component更改为@Configuration


0
投票

我按照这篇文章添加了列表的getter和setter。它为我解决了。

Code:

@Service("testservice")
@ConfigurationProperties(prefix="es")
public class TestService {

     @Value("${url.endPoint}")
     private String endpointUrl;

     private List<String> scope;
    public List<String> getScope() {
        return scope;
    }

    public void setScope(List<String> scope) {
        this.scope = scope;
    }
..
}
© www.soinside.com 2019 - 2024. All rights reserved.