热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBoot@Value注解+SpEL表达式使用

SpringBoot中的application.properties配置文件#一般使用这种配置test.key:value#获取为Array或者Listtest.array1

Spring Boot中的application.properties配置文件

# 一般使用这种配置
test.key: value# 获取为Array或者List
test.array1: aaa,bbb,ccc
# 只有key,没有value
test.array2:# value值有重复
test.set: 111,222,333,111# 配置一个Map
test.map1: {"name": "zhangsan", sex: "male"}

使用@value注解读取配置文件的信息

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;// @Value注解必须要配合@Service或者@Componen等容器注解使用
@Service
public class AliaPay2 implements IPayMethod {// 最普通的使用方式&#64;Value("${test.key}")private String value;// 将配置文件读取为数组&#64;Value("${test.array1}")private String[] testArray1;// 不能添加static关键字,否则会无法把读取到的信息放入变量中&#64;Value("${test.array1}")private static String[] testArrayError1;// 不能通过下面这种方式读取为List,会报错&#64;Value("${test.array1}")private List<String> testArrayError2;// 使用EL表达式将Array转换为List// 添加上默认值,避免key忘记配置的时候报错误// 冒号后的值表示当key不存在时候使用的默认值&#64;Value("#{&#39;${test.array1:}&#39;.split(&#39;,&#39;)}")private List<String> testList;// 判断是否为空&#64;Value("#{&#39;${test.array1:}&#39;.empty ? null : &#39;${test.array1:}&#39;.split(&#39;,&#39;)}")private List<String> testList1;// 虽然配置了,但是没有写值&#64;Value("${test.array2}")private String[] testArray2;// 根本就没有这个配置,为了防止报错,就使用了 : 来指定默认值&#64;Value("${test.array3:}")private String[] testArray3;// 解析为Set,但是会进行去重操作&#64;Value("#{&#39;${test.set:}&#39;.empty ? null : &#39;${test.set:}&#39;.split(&#39;,&#39;)}")private Set<Integer> testSet;// 将配置信息封装成map&#64;Value("#{${test.map1}}")private Map<String,String> map1;
}


推荐阅读
author-avatar
qa32qw51
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有