【Java开发】之配置文件的读取
目录
- 一、使用 @Value 读取注入值
- 1、注入普通值
- 2、注入 Map
- 3、注入数组
- 4、注入 List
- 5、注意事项
- 二、使用 @ConfigurationProperties 读取
- 1、注入普通值
- 2、注入 Map
- 3、注入数组和 List
- 4、注入对象
- 5、注意事项
一、使用 @Value 读取注入值
1、注入普通值
Yaml 配置文件:
user:username: Andypassword: 123456
Java 代码注入:
@Data
@Component
public class UserProperties {@Value("${user.username}")private String username;@Value("${user.password}")private String password;}
默认值:
如果要注入的配置不存在时,就会报错,这时,我们可以为要注入的配置提供一个默认值:
@Data
@Component
public class UserProperties {@Value("${user.password:123456}")private String password;}
默认值的使用方法为:在需要读取的配置名称后面添加 :
,然后紧跟默认值。
2、注入 Map
Yaml 配置文件:
user:account: "{username: 'Andy', password: '123456'}"
Java 代码注入:
@Data
@Component
public class UserProperties {@Value("#{${user.account}}")private Map<String, String> account;}
注意: Yaml 配置文件中的 map 值需要使用 ""
包裹起来,里面的 value 值如果是字符串可以使用 ''
括起来。
3、注入数组
Yaml 配置文件:
user:list: Andy,Bob,Marry
Java 代码注入:
@Data
@Component
public class UserProperties {@Value("${user.list}")private String[] list;}
注意: 数组默认自动以 ,
分隔值列表。
4、注入 List
Yaml 配置文件:
user:list: Andy,Bob,Marry
Java 代码注入:
@Data
@Component
public class UserProperties {@Value("${user.list}")private List<String> list;}
注意: List 默认自动以 ,
分隔值列表,如果需要使用其他分隔符的话,就需要使用 SPEL 表达式进行注入了:
Yaml 配置文件:
user:list: Andy|Bob|Marry
Java 代码注入:
@Data
@Component
public class UserProperties {@Value("#{'${user.list}'.split('\\|')}")private List<String> list;}
5、注意事项
- 1、
@Value
修饰的变量不能是final
、static
类型; - 2、类要交给 Spring 管理,可以使用
@Component
修饰所在的类; - 3、使用时,不能通过
new
来构建这个类,需要使用@Autowired
来注入。
二、使用 @ConfigurationProperties 读取注入值
1、注入普通值
Yaml 配置文件:
user:username: Andypassword: 123456
Java 代码注入:
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class UserProperties {private String username;private String password;}
注意: 变量名称需要和配置文件的配置名称对应。
2、注入 Map
Yaml 配置文件:
user:map: {username: 'Andy', password: '123456'}
Java 代码注入:
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class UserProperties {private Map<String, String> map;}
注意: 配置文件中的 map 值不能使用 ""
进行包括(可以和 @Value 做对比)。
3、注入数组和 List
Yaml 配置文件:
user:list:- Andy- Bob- Marry
Java 代码注入数组:
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class UserProperties {private String[] list;}
注入 List 和注入数组类似,将数组类型更改为 List 类型即可:
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class UserProperties {private List<String> list;}
4、注入对象
Yaml 配置文件:
user:username: Andypassword: 123456info:age: 18sex: man
Java 代码注入:
@Data
@Component
@ConfigurationProperties(prefix = "user")
public class UserProperties {private String username;private String password;@NestedConfigurationPropertyprivate Information info;@Getter@Setterpublic static class Information {private Integer age;private String sex;}}
注意:
- 对象的注入只需要变量名称和配置文件中的配置名称对应即可,对象的类名随意;
- 对象的注入可以使用
@NestedConfigurationProperty
注解表明改属性是内嵌的对象属性,但并不是必须的,可用可无,即使没有可以注入进去。
5、注意事项
- 想要
@ConfigurationProperties
注解生效,需要在配置类中添加@Component
注解,将其添加到 Spring 的 Bean 容器管理当中,并且属性类需要在@SpringBootApplication
注解的包扫描路径当中scanBasePackages = { "xxxx"}
; - 如果不使用
@Component
注解的话,就需要在启动类中添加@EnableConfigurationProperties
注解,然后将配置类的类名添加进去:@EnableConfigurationProperties({xxx.class})。
【Java开发】之配置文件的读取相关推荐
- java开发eclipse配置文件_配置eclipse开发环境
一.下载安装包 1.下载jdk 1.7 32位 2.下载tomcat 7.0 3.下载eclipse 免费版 1) 可以使用免费的Eclipse官方网站(http://www.eclipse.org) ...
- java 开发环境配置文件_Java 开发环境配置
在本章节中我们将为大家介绍如何搭建Java开发环境.Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java window系统安装java 下载JDK 首先我们 ...
- Java开发基础——配置文件的写入与读取
在实际的项目开发中,配置文件是一个非常重要的工具,我们可以把全局的配置写入文件,然后在需要的时候再取出来.且在项目的任何位置都可以使用,非常方便.可以把配置文件理解为一个临时性的数据库.在IDEA中, ...
- java 监听配置文件_java读取系统Properties配置文件利用线程实时监控配置文件变化...
package util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcept ...
- java加载配置文件_Java 读取配置文件的五种方式
方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来. 因为是用ServletContext读取文件路径,所以配置文件可以放入在WEB-INF的clas ...
- java加载配置文件_java 读取和修改配置文件
1.读取配置文件 try{ File f=new File("D:\\myfile.text"); Properties pp=new Properties(); FileInpu ...
- nfc读卡java开发,Android通过NFC读取IC卡示例
[实例简介] Android通过NFC读取IC卡示例,包含读取.写入. [实例截图] [核心代码] nfc_demo └── nfc_demo ├── app │ ├── app.iml │ ...
- java下mysql连接配置文件_Java读取.properties配置文件并连接数据库
1.读取配置文件 //Properties集合 流对象读取键值对 public static void getNum() throws Exception { Properties p=new Pro ...
- java property xml,Java开发中读取XML与properties配置文件的方法
相关阅读: 1. XML文件: 什么是XML?XML一般是指可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 2.XML文件的优点: 1)XML文档内容和结构完 ...
- java读取mysql数据库配置文件_java读取properties文件的方法
Java 读写Properties配置文件 Java 读写Properties配置文件 1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实 ...
最新文章
- 知识产权基础(上、下)
- 从“小”培养AI安全意识:OpenAI开源最新强化学习训练工具,安全约束自由定制,开箱即用...
- java list 替换 多线程_Java多线程处理List数据
- 数据不一致问题排查1
- ft232r usb uart驱动 win7_新电脑想装WIN7,技术员让装WIN10,不是忽悠你,是有原因的...
- 腾讯校园招聘面试的秘密
- mysql 回滚失败_Mysql非事务表回滚失败的现象
- 蓝军HVV实用工具和网站总结
- C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素”
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---05
- ASP.NET留言板 文字加表情
- 输入一个整数,计算它各位上数字的和。(注意:是任意位的整数)
- c51语言自定义头文件,C51语言头文件包括的内容有
- 基于pyqt5的Demo软件开发
- 直流电机控制原理与TB6612FNG(初识编码器)
- html 图片加载 占位,css实现图片未加载完成时占位显示
- 微信小程序 MinUI 组件库系列之 avatar 头像组件
- 计算广告学习笔记1.2 广告的基础知识-广告的有效性模型
- Python基础知识笔记
- 以前写过的ajax基础案例(王欢-huanhuan)