springboot中使用@Value读取配置文件

一、配置文件配置

直接配置

在src/main/resources下添加配置文件application.properties

例如修改端口号

#端口号
server.port=8089

分环境配置

在src/main/resources下添加,application-pro.properties,application-dev.properties和application.properties三个文件

application.properties

配置属性激活的文件
spring.profiles.active=dev

application-pro.properties

#端口号
server.port=80
#自定义端口号读取
my.name=pzr.dev

application-dev.properties

#端口号
server.port=8089
#自定义端口号读取
my.name=pzr.pro

当application.propertie设置spring.profiles.active=dev时,则说明是指定使用application-dev.properties文件进行配置

二、配置文件参数读取

2.1、注解方式读取

1、@PropertySource配置文件路径设置,在类上添加注解,如果在默认路径下可以不添加该注解。

需要用@PropertySource的有:

  • 例如非application.properties,classpath:config/my.properties指的是src/main/resources目录下config目录下的my.properties文件,

  • 例如有多配置文件引用,若取两个配置文件中有相同属性名的值,则取值为最后一个配置文件中的值

  • 在application.properties中的文件,直接使用@Value读取即可,applicarion的读取优先级最高

@PropertySource({"classpath:config/my.properties","classpath:config/config.properties"})
public class TestController

2、@Value属性名,在属性名上添加该注解

@Value("${my.name}")
private String myName;

三、配置文件中配置集合类(Map、list)@Value注入map、List

yaml格式

@Value("#{'${list}'.split(',')}")
private List list;
 
@Value("#{${maps}}")  
private Map maps;

@Value("#{${redirectUrl}}")
private Map redirectUrl;

配置文件

list: topic1,topic2,topic3
maps: "{key1: 'value1', key2: 'value2'}"
redirectUrl: "{sso_client_id: '${id}',sso_client_secret: '${secret}',redirect_url: '${client.main.url.default}'}"

注意:

上面的list配置中,一定不要用“”把list所有的成员value包起来,要不然解析报错。

上面的map配置中,一定要用“”把map所对应的value包起来,要不然解析会失败,导致不能转成 Map

链接

https://www.cnblogs.com/duanxz/p/4520627.html

转载于:https://my.oschina.net/u/3421984/blog/3061380

你可能感兴趣的:(springboot中使用@Value读取配置文件)