在 Spring 中,如果使用 @Value
注解注入值,不能将其应用于 static
字段。Spring 只能为实例变量注入值,不能直接对静态变量进行注入。
使用 @PostConstruct
初始化:
如果确实需要在静态上下文中使用该值,可以使用 @PostConstruct
方法来设置静态变量:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class UserConfig {
@Value("${upload.user}")
private String user;
private static String staticUser;
@PostConstruct
public void init() {
staticUser = user;
}
public static String getStaticUser() {
return staticUser;
}
}
现在可以通过 UserConfig.getStaticUser()
来访问 upload.user
的值。