如何在 spring boot 中从 [] 读取 属性 作为 List<String>
How to read property as List<String> from [] in springboot
有时我看到有人在 属性 文件中这样定义:
spring.autoconfigure.exclude[0]=com.vietnam.AAutoConfiguration
spring.autoconfigure.exclude[1]=com.vietnam.BAutoConfiguration
只是问题:如何在 Spring bean 中定义一个 属性 来将此配置收集为列表?
在其他地方他们说这样使用:
在 属性:
spring.autoconfigure.exclude=com.vietnam.AAutoConfiguration,com.vietnam.BAutoConfiguration
在spring豆
@Value("#{'${spring.autoconfigure.exclude}'.split(',')}"
但我不喜欢这种方式,以防值很长。每行一个配置会更容易阅读和维护
谢谢
您可以像下面这样读取多个字符串
在 application.properties
app.names=vipul,uncle,bob
在你的组件中 class
@Value("${app.names}")
private List<String> names;
我找到方法了,使用 @Value
不支持我想要的大小写。
我们需要使用 @ConfigurationProperties
然后 Spring 将收集 属性 作为列表
@ConfigurationProperties(prefix = "spring.autoconfigure")
public class SpringConfig {
@Setter //lombok
private List<String> exclude;
}
配置会很简单:
spring.autoconfigure.exclude[0]=com.vietnam.AAutoConfiguration
spring.autoconfigure.exclude[1]=com.vietnam.BAutoConfiguration
有时我看到有人在 属性 文件中这样定义:
spring.autoconfigure.exclude[0]=com.vietnam.AAutoConfiguration
spring.autoconfigure.exclude[1]=com.vietnam.BAutoConfiguration
只是问题:如何在 Spring bean 中定义一个 属性 来将此配置收集为列表? 在其他地方他们说这样使用: 在 属性:
spring.autoconfigure.exclude=com.vietnam.AAutoConfiguration,com.vietnam.BAutoConfiguration
在spring豆
@Value("#{'${spring.autoconfigure.exclude}'.split(',')}"
但我不喜欢这种方式,以防值很长。每行一个配置会更容易阅读和维护
谢谢
您可以像下面这样读取多个字符串 在 application.properties
app.names=vipul,uncle,bob
在你的组件中 class
@Value("${app.names}")
private List<String> names;
我找到方法了,使用 @Value
不支持我想要的大小写。
我们需要使用 @ConfigurationProperties
然后 Spring 将收集 属性 作为列表
@ConfigurationProperties(prefix = "spring.autoconfigure")
public class SpringConfig {
@Setter //lombok
private List<String> exclude;
}
配置会很简单:
spring.autoconfigure.exclude[0]=com.vietnam.AAutoConfiguration
spring.autoconfigure.exclude[1]=com.vietnam.BAutoConfiguration