【SpringBoot】SpringBoot @ConfigurationProperties 注解 用法与加载static静态属性

  • Post author:
  • Post category:其他


@ConfigurationProperties

【SpringBoot】SpringBoot @ConfigurationProperties 注解 用法与加载static静态属性

@ConfigurationProperties只会调用非静态的set方法,只要将set方法都换成非静态即可

package com.xxx.auth.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * @Title: 配置信息
 * @Description: 描述
 * @Version: v1.0
 * @Author: Mr.Guan
 * @Mail GuanWeiMail@163.com
 */
@Configuration
@ConfigurationProperties(prefix = "config")
public class AuthConfig {

    /**
     * Token 前缀
     */
    private static String tokenPrefix;

    /**
     * Token 过期时间
     */
    public static Integer tokenExistsSeconds;


    public static String getTokenPrefix() {
        return tokenPrefix;
    }

    public static Integer getTokenExistsSeconds() {
        return tokenExistsSeconds;
    }

    public synchronized void setTokenPrefix(String tokenPrefix) {
        if(AuthConfig.tokenPrefix == null){
            AuthConfig.tokenPrefix = tokenPrefix;
        }
    }

    public synchronized void setTokenExistsSeconds(Integer tokenExistsSeconds) {
        if(AuthConfig.tokenExistsSeconds == null){
            AuthConfig.tokenExistsSeconds = tokenExistsSeconds;
        }
    }
}


@Value 标记 set 方法

示例代码如下:

  • 类必须是 spring bean
  • @Value 标记在 set 方法上,方法名没有要求
@Component
public class TestConfig {

    private static String name;

    @Value("${test.name}")
    public void inject(String s) {
        name = s;
    }
}

参考

Spring 实现@Value注入静态字段 – 知乎 (zhihu.com)



版权声明:本文为G971005287W原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。