简单的Springboot获取Proverties中定义的属性

首先Spring会自动加载默认的配置文件,这个文件里定义的属性不需要单独的处理,可以直接加载;

获取的方式有很多

  • 可以使用注解@Value直接获取
  • Environment这个类的getProperty方法直接获取
  • 当然也可以定义一个配置类,在类上加@PropertySource("classpath:xx.properties")

但是如果是自定义的Properties,又不想每次在上面加一个配置,代码就用改,我们就可以用下面这种方式

@Configuration
public class PropertiesUtil {
    private static final ConcurrentHashMap propertyMap=new ConcurrentHashMap<>();
    private static final ClassPathResource resource = new ClassPathResource("/my.properties");
    @PostConstruct
    public void init(){
        try {
            Properties prop = PropertiesLoaderUtils.loadProperties(resource);
            prop.forEach((key, value) -> propertyMap.put((String) key, value));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 通过key获取值
     */
    public static Object getCustomizProperty(@NotNull String key){
        return propertyMap.get(key);
    }
}

自己去加载自定义配置文件。这样在使用的直接PropertiesUtil.getCustomizeProperty就好了;当然如果你不想添加配置后需要重新启动项目才生效的话,就再添加一个方法,定时刷新就好了。 

你可能感兴趣的:(简单的Springboot获取Proverties中定义的属性)