我的application.properties文件中有以下内容
some.server.url[0]=http://url
some.server.url[1]=http://otherUrl
如何在@Bean方法中使用@Value anotation引用属性数组?
我正在使用Java 6与Tomcat 7和Spring boot 1.4
答案 0 :(得分:8)
我也遇到了与您提到的相同的问题,似乎在 application.properties
上使用索引表单也不适用于我。
为了解决这个问题,我做了类似下面的事情
some.server.url = url1, url2
然后,为了获得这些属性,我只需使用 @Value
@Value("${some.server.url}")
private String[] urls ;
Spring 使用逗号自动拆分字符串,并返回数组。 AFAIK 这是在Spring 4+
如果您不希望 comma (,)
作为分隔符,则必须使用 SpEL ,如下所示。
@Value("#{'${some.server.url}'.split(',')}")
private List<String> urls;
split()
接受分隔符
答案 1 :(得分:6)
您可以使用集合。
@Value("${some.server.url}")
private List<String> urls;
您还可以使用配置类并将bean注入其他类:
@Component
@ConfigurationProperties("some.server")
public class SomeConfiguration {
private List<String> url;
public List<String> getUrl() {
return url;
}
public void setUrl(List<String> url) {
this.url = url;
}
}
答案 2 :(得分:3)
请按照以下步骤操作
1) @Value( “$ {} some.server.url”) 私人列表网址;
2) @ConfigurationProperties( “some.server”) 公共类SomeConfiguration {
3) 你应该有getter和setter作为变量'urls'