@PropertySource @Value静态字符串返回null

时间:2017-09-14 12:23:57

标签: java spring spring-boot properties appsettings

int Activation和int ForgotPassword工作正常,但字符串变量返回null我需要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;
        }

    }

的.properties

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

2 个答案:

答案 0 :(得分:0)

@Value()在bean的初始化时被调用,bean在初始化时不需要在初始化时被初始化,因此除非初始化bean,否则你将没有值

答案 1 :(得分:0)

Spring不支持{strong>静态字段上的@Value注入。

您确定需要“AppSettings的静态类”吗?我怀疑这可能代表了对春天单身人士如何运作的误解。

但是,如果你真的需要“AppSettings的静态类”,那么你可以实现如下:

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