如何在 Spring 中绑定属性的字符串数组?

新手上路,请多包涵

我的 application.properties 文件中有以下内容

some.server.url[0]=http://url
some.server.url[1]=http://otherUrl

如何在 @Bean 方法中使用 @Value 注释来引用属性数组?

我将 Java 6 与 Tomcat 7 和 Spring Boot 1.4 一起使用

原文由 SebS 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 502
2 个回答

按着这些次序

  1. @Value(“${some.server.url}”) 私有列表 url;

  2. @ConfigurationProperties(“some.server”) 公共类 SomeConfiguration {

3)你应该有实例变量’urls’的getter和setter

原文由 user3567935 发布,翻译遵循 CC BY-SA 3.0 许可协议

我也遇到了与您提到的相同的问题,并且似乎在 application.properties 上使用索引表单对我也不起作用。

为了解决这个问题,我做了类似下面的事情

some.server.url = url1, url2

然后要获得这些属性,我只需使用 @Value

 @Value("${some.server.url}")
private String[] urls ;

Spring 自动用 逗号 分割 String 并返回一个 ArrayAFAIK 这是在 Spring 4+ 中引入的

如果您不想 comma (,) 作为分隔符,则必须使用如下所示的 SpEL

 @Value("#{'${some.server.url}'.split(',')}")
private List<String> urls;

其中 split() 接受 分隔符

原文由 A0__oN 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题