当前位置: 代码迷 >> 综合 >> 简单的Springboot获取Proverties中定义的属性
  详细解决方案

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

热度:43   发布时间:2024-01-20 17:47:37.0

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

获取的方式有很多

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

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

@Configuration
public class PropertiesUtil {private static final ConcurrentHashMap<String,Object> propertyMap=new ConcurrentHashMap<>();private static final ClassPathResource resource = new ClassPathResource("/my.properties");@PostConstructpublic 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就好了;当然如果你不想添加配置后需要重新启动项目才生效的话,就再添加一个方法,定时刷新就好了。