如何在 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