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

mklgxw1f  于 2022-12-17  发布在  Spring
关注(0)|答案(2)|浏览(111)

在StackOverflow上阅读了几个answers之后,我尝试按照建议实现它,但是在我的@Component中仍然没有得到字符串列表。
下面是我的application.yml文件

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

我的@Component类是

@Component
@ConfigurationProperties(prefix = "appName.shipment.providers")
public class ProviderUtil {

    List<String> supported;

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

在这里,我期望supported有一个字符串列表onetwo,但它是null。有人能帮助我理解这里发生了什么以及如何解决它吗?

mkshixfv

mkshixfv1#

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

v1l68za4

v1l68za42#

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

    // ...
}

相关问题