spring 中每个实例化的 class 是否从 application.properties 文件加载默认变量?

Does every instantiated class in spring load default variables from the application.properties file?

Spring 注释问题。我正在使用这样的默认值

@Service
public class MyClient{
@Value("${apikey}")
private String apikey;
    public MyClient(){}
}

我想这个 class 的每个实例化都应该将 apikey 的值初始化为 application.properties 文件中的默认值 apikey。不是这样吗?我问是因为我在实例化 MyClient 对象后发现 apikey 为空。

您的 class 被注释为 @Service,因此它是一个 spring-managed bean。默认情况下,所有 spring 个 bean 都是单例的,因此只存在于一个实例中。

如果您尝试手动创建此 bean,@value 的自动连接将不起作用,因为您绕过了 spring 初始化。

顺便说一句:将来自同一个 class.

的自我管理和 spring 管理的 bean 混合是个坏主意