前提
最近在写代码的过程中,看到一个读取配置文件的方式,感觉挺有用的,记录一下。
配置文件装填Map类型
1. 配置文件mysql-datatype.properties内容
datasource.type[CHAR]=STRING
datasource.type[CHARACTER]=STRING
datasource.type[VARCHAR]=STRING
datasource.type[TEXT]=STRING
配置文件放在项目的resource目录下的config目录
2. DemoDataTypeConfiguration读取配置文件类
java代码如下:
@Configuration("mysql_configuration")
@PropertySource(value = "classpath:config/mysql-datatype.properties")
@ConfigurationProperties(prefix = "datasource")
public class DemoDataTypeConfiguration {
public Map<String, String> datasourceType = new HashMap<>();
public Map<String, String> getType() {
return datasourceType;
}
/**
* 这里的形参名一定要和配置文件的datasource.XX相对应 我这里配置文件用的type 我也只能用type
* @param type
*/
public void setType(Map<String, String> type) {
this.datasourceType = type;
}
}
这里用到了
@Configuration
@PropertySource
@ConfigurationProperties
三个注解
3. 具体使用实例
这里的使用你可以在可以使用
@Autowired
注解的类中使用,可以在工具类中使用实现
ApplicationContextAware
的类中获取
ApplicationContext
这是两种方式,都是可以的。
3.1 使用@Autowired 获取ApplicationContext
代码截图:
使用效果:
这里已经全部获取到了。封存在map里 了。
3.2 使用ApplicationContextAware获取ApplicationContext
代码实现:
@Component
public class ApplicationContextUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ApplicationContextUtils.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
}
实现效果:
也能获取到
版权声明:本文为sdut406原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。