本文主要是用资源扫描的方式,在运行项目时将本地properties配置文件以bean的方式加载到项目中,
test.properties配置文件中的内容为:
parameter1=aaaaaaa
parameter2=bbbbbbb
parameter3=ccccccc
parameter4=参数4
扫描配置文件并加载的代码如下:
package com.sinosoft.hx.boc.service;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
@Configuration
public class TestConfig {
@Bean
public Map loadConfig() throws UnsupportedEncodingException {
ClassPathResource classPathResource = new ClassPathResource("test.properties");
Properties prop = new Properties();
InputStream in = null;
try {
in = new BufferedInputStream(classPathResource.getInputStream());
prop.load(new InputStreamReader(in, "utf-8"));
} catch (IOException e) {
e.printStackTrace();
System.out.println("加载本地配置文件ICBCCommonConfig.properties失败");
}finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Set<String> keySet = prop.stringPropertyNames();
Map<String, String> configMap = new HashMap();
for (String key : keySet) {
String value = prop.getProperty(key);
System.out.println("配置文件读取==================key="+key+"value="+value);
configMap.put(key,value);
}
System.out.println("加载微服务所有的配置:"+configMap.toString());
return configMap;
}
}
这是需要引入的依赖:
在项目的其他地方如果想使用配置文件中的参数,只需直接注入配置文件的bean即可:
@Autowired
@Qualifier("loadConfig")
private Map configMap;
@Autowired注解是将bean注入到项目中,@Qualifier("loadConfig")注解只需将加载配置文件的方法名写入到括号当中。
我们已经将配置文件以Map的形式注入到项目当中配置文件中的value只需根据key直接获取即可,下面是测试代码片段:
@Autowired
@Qualifier("loadConfig")
private Map configMap;
@Test
public void test(){
String parameter1 = (String) configMap.get("parameter1");
System.out.println("第一个参数为:" + parameter1);
String parameter2 = (String) configMap.get("parameter2");
System.out.println("第二个参数为:" + parameter2);
String parameter3 = (String) configMap.get("parameter3");
System.out.println("第三个参数为:" + parameter3);
String parameter4 = (String) configMap.get("parameter4");
System.out.println("第四个参数为:" + parameter4);
}
调用我们写的测试方法,控制台打印日志如下:
此时我们的配置文件就已经加载成功了!