Java开发中使用配置文件注入值
配置文件注入值
方式1:普通字符串
例如
caominglong.name=“曹明龙”
使用方式
@Value(“${caominglong.name}”)
private String name;
输出结果为:name = "曹明龙"
方式2:int、boolean类型
例如
caominglong.age=25
caominglong.sex=true
使用方式跟上面字符串的使用方式一致。
方式3:数组类型
例如
id=1,2,3
使用方式
@Value(“${id}”)
private int[] ids;
当不存在id的配置时,ids为非null,空数组。长度为0
方式4:list类型
id=1,2,3
使用方式
@Value(“#{'${id}'.split(",")}”)
private List<String> idList;
当不存在id配置时,集合idList的长度为1,存在值“”
方式5:map类型
例如:
user={name:'zs',age:'23'}
使用方式
@Value(“#{${user}}”)
private Map<String,String> userInfo;
额外
1.可以设置默认值
@Value("${name:cml}")
当不存在配置的时候,默认值为cml
2.在配置文件中配置中文的时候,需要配置为asill码
然后获取配置的时候需要转为utf-8格式
properties.load(new InputStreamReader(inputStream, “UTF-8”));
3.如果需要在修改配置文件的同时,也可以同步刷新获取的配置数据,那么就不能使用@Value的方式去获取配置,需要通过IO流的方式去获取配置。
4.yml跟properties文件中的配置有所差别
比如配置user={name:'zs',age:'23'}
properties不需要在外层加“”(双引号)
yml文件则需要添加“”(双引号)
5.如果在线上部署的时候,使用的是jar包外面的配置文件,那么获取的时候需要使用下面的方式
InputStream inputStream = new FileInputStream(new File(System.getProperty("user.dir") + File.separator + "application-scfw.properties"));