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

时间:2016-07-27 15:29:55

标签: spring dependency-injection configuration spring-boot yaml

在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,但它为空。有人可以帮助解决这里发生的事情以及解决方法吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我关注了这篇文章,并为列表添加了getter和setter方法。它对我有用。

代码:

@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;
    }
..
}