在 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;@PostConstructpublic void init() {staticUser = user;}public static String getStaticUser() {return staticUser;}
}
现在可以通过 UserConfig.getStaticUser()
来访问 upload.user
的值。