gpt4 book ai didi

java - 如何将@Value注入(inject)到setter中?

转载 作者:行者123 更新时间:2023-11-30 06:11:59 25 4
gpt4 key购买 nike

是否可以将 @Value 属性注入(inject)到 @Service 的 setter 中?

@Service
public class DateService {
private DateTimeFormatter dtf;

public void setDtf(@Value("${spring.jackson.date-format}") String format) {
dtf = DateTimeFormatter.ofPattern(format);
}
}

问题:setter 从未被调用。但如何注入(inject) String 属性并直接实例化 DateTimeFormatter 呢?

我也尝试过使用SpEL,但以下格式不正确。

@Value("#{T(java.time.format.DateTimeFormatter.ofPattern(${spring.jackson.date-format}))}")
private DateTimeFormatter dtf;

最佳答案

假设 DateService 只有一个构造函数,您可以只使用构造函数注入(inject):

@Service
public class DateService {
private DateTimeFormatter dtf;

@Autowired
public DateService(@Value("${spring.jackson.date-format}") final String format) {
this.dtf = DateTimeFormatter.ofPattern(format);
}
}

关于java - 如何将@Value注入(inject)到setter中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50044777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com