Spring Boot 将字符串列表从application.yml加载到组件中

vkc1a9a2  于 2022-12-12  发布在  Spring
关注(0)|答案(2)|浏览(139)

在阅读了几个关于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的列表,但它是空的。有人能帮助这里发生了什么以及如何解决它吗?

lmyy7pcs

lmyy7pcs1#

你的类路径上有spring-boot-configuration-processor依赖项吗?
同时将Bean从@Component更改为@Configuration

lrl1mhuk

lrl1mhuk2#

我关注了这篇文章,并为列表添加了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;
    }

    // ...
}

相关问题