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

Using @Value annotation to Inject single property

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

@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 结果为空,什么是实现此目的的最佳方法。

Madu,看来你的问题只与你的class有关。 它不是 Spring 上下文的 Bean,那么你的 @Value 不能被 Spring.

注入

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

@Component
public class BatchContext {...
}