【发布时间】:2018-02-12 15:04:20
【问题描述】:
我想在属性上使用@Value,但我总是得到0(on int)。
但是在构造函数参数上它可以工作。
例子:
@Component
public class FtpServer {
@Value("${ftp.port}")
private int port;
public FtpServer(@Value("${ftp.port}") int port) {
System.out.println(port); // 21, loaded from the application.properties.
System.out.println(this.port); // 0???
}
}
对象是弹簧管理的,否则构造函数参数不起作用。
有谁知道是什么导致了这种奇怪的行为?
【问题讨论】:
-
构造函数和类名不匹配,我猜是错字
-
Spring如何在一个甚至不存在的对象上设置一个值...一个对象在构造函数执行后存在。
标签: java spring spring-boot dependency-injection property-injection