ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java开发中使用配置文件注入值

2022-05-23 16:33:12  阅读:117  来源: 互联网

标签:Java name 配置文件 配置 Value 方式 id 注入


配置文件注入值

方式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"));

标签:Java,name,配置文件,配置,Value,方式,id,注入
来源: https://www.cnblogs.com/szbm/p/16301662.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有