伊成博客
伊成博客

如何在 Spring boot中使用 @Value注入map、List,yaml格式

“如何在Springboot中使用Value注”

前言

最近项目开发中,需要做到项目的主备切换,所以就会有多个ip加端口,在配置文件里面可以配置成这样。

1
2
ip1=172.168.34.161:2001
ip2=172.168.34.171:3001

那怎么把这2行配置成一个map呢?

@value注入map

1
maps: "{ip1: '172.168.34.161:2001', ip2: '172.168.34.171:3001'}"

然后在你的service里面就可以用

1
2
@Value("#{${maps}}")  
private Map<String,String> maps;

但是有一点需要注意的是:在上面map中,一定要用””把map所对应的value包起来,要不然解析会失败,导致不能转成 Map<String,String>。

@value注入list

还有一个问题在配置文件中,很少有人使用配置文件配置一个list,如以下:

1
list: ip1,ip2,ip3

对应在service里面则可以这样写

1
2
@Value("#{'${list}'.split(',')}")
private List<String> list;

备忘,特此记录!

支付宝打赏 微信打赏

如果本文对你有所帮助,请打赏 1元就足够感动我 :)