@PropertySource @Value 静态字符串 return 空

@PropertySource @Value static strings return null

int Activation 和 int ForgotPassword 工作正常,但字符串变量 return null 我需要静态 class 用于 AppSettings

@PropertySource("classpath:appSettings.properties")
    public class AppSettings {

        @Value("${Activation}")
        private static int Activation;
        @Value("${ForgotPassword}")
        private static int ForgotPassword;
        @Value("${CryptoSplit}")
        private static String CryptoSplit;
        @Value("${CryptoKey}")
        private static String CryptoKey;

        public static String getCryptoSplit() {
            return CryptoSplit;
        }

        public static String getCryptoKey() {
            return CryptoKey;
        }
        public static int getActivation() {
            return Activation;
        }

        public static int getForgotPassword() {
            return ForgotPassword;
        }

    }

.属性

Activation=0
ForgotPassword=1
CryptoSplit=:OSK:
CryptoKey=TheBestSecretKey

@Value() 在 bean 初始化时被调用,bean 在启动时不需要初始化,所以除非 bean 被初始化,否则你不会有值

Spring 不支持 @Valuestatic 字段上注入。

您确定需要一个"static class for AppSettings"吗?我怀疑这可能代表了对 Spring 单例工作方式的误解。

但是,如果您确实需要 "static class for AppSettings",那么您可以按如下方式实现:

@Value("${CryptoKey}")
public void setCryptoKey(String cryptoKey) {
    AppSettings.CryptoKey = CryptoKey;
}