使用@Value注释注入单个属性

问题描述

我有一类,我只希望从属性文件中注入一个属性。 该类是这样的:

@Getter
public class BatchContext {

    private final String city;
    private final String channel;

    @Value("${table.url: https://www.someurl.com}")
    private final String url;

    @Builder
    public BatchContext(String city,String channel,@Value("${table.url:https://www.someurl.com}") String url) {
        this.city = city;
        this.channel = channel;
        this.url = url;
    }
}

我只想将国家/地区和细分传递给BatchContext,并希望从属性文件中加载url,但是该URL却为null,这是实现此目标的最佳方法

解决方法

Madu,看来您的问题只与您的课堂有关。 它不是用于Spring上下文的Bean,因此Spring无法注入您的@Value。

尝试将您的类设置为由Spring管理的对象,例如@Component:

@Component
public class BatchContext {...
}