@ConfigurationProperties 是 Spring Boot 中的一个注解,它允许我们将应用程序中的配置文件绑定到 Bean 上。绑定后,我们就可以方便地将配置文件的配置值注入到 Bean 中了。除了一个普通的扩展 @ConfigurationProperties 的 Spring Boot Config 类之外,我们还可以将属性绑定到 Collections 类型中。
绑定数组
下面是一个绑定数组的示例:
@ConfigurationProperties(prefix = "example")
public class ExampleProperties {
private String[] servers;
public String[] getServers() {
return this.servers;
}
public void setServers(String[] servers) {
this.servers = servers;
}
}
以上代码将会绑定配置文件中以 example.servers 为前缀的所有属性。假设配置文件如下:
example.servers[0]=localhost
example.servers[1]=127.0.0.1
在 Spring Boot 应用程序中,在 @EnableConfigurationProperties 注释业务类的注释上声明 ExampleProperties 就可以使用绑定的值:
@SpringBootApplication
@ConfigurationPropertiesScan
@EnableConfigurationProperties(ExampleProperties.class)
public class ExampleApplication implements CommandLineRunner {
@Autowired
private ExampleProperties exampleProperties;
public static void main(String[] args) {
SpringApplication.run(ExampleApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
System.out.println(Arrays.asList(exampleProperties.getServers()));
}
}
在上述代码中,我们可以从 ExampleProperties 对象中获得绑定的属性值,并将其打印到控制台中。
绑定列表
绑定列表和绑定数组类似。下面是一个绑定列表的示例:
@ConfigurationProperties(prefix = "example")
public class ExampleProperties {
private List<String> servers;
public List<String> getServers() {
return this.servers;
}
public void setServers(List<String> servers) {
this.servers = servers;
}
}
假设配置文件如下:
example.servers[0]=localhost
example.servers[1]=127.0.0.1
在 Spring Boot 应用程序中,在 @EnableConfigurationProperties 注释业务类的注释上声明 ExampleProperties 就可以使用绑定的值:
@SpringBootApplication
@ConfigurationPropertiesScan
@EnableConfigurationProperties(ExampleProperties.class)
public class ExampleApplication implements CommandLineRunner {
@Autowired
private ExampleProperties exampleProperties;
public static void main(String[] args) {
SpringApplication.run(ExampleApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
System.out.println(exampleProperties.getServers());
}
}
在上述代码中,我们可以从 ExampleProperties 对象中获得绑定的属性值,并将其打印到控制台中。
绑定Map
以下是一个绑定 Map 的示例:
@ConfigurationProperties(prefix = "example")
public class ExampleProperties {
private Map<String, String> servers;
public Map<String, String> getServers() {
return this.servers;
}
public void setServers(Map<String, String> servers) {
this.servers = servers;
}
}
假设配置文件如下:
example.servers.server1=localhost
example.servers.server2=127.0.0.1
在 Spring Boot 应用程序中,在 @EnableConfigurationProperties 注释业务类的注释上声明 ExampleProperties 就可以使用绑定的值:
@SpringBootApplication
@ConfigurationPropertiesScan
@EnableConfigurationProperties(ExampleProperties.class)
public class ExampleApplication implements CommandLineRunner {
@Autowired
private ExampleProperties exampleProperties;
public static void main(String[] args) {
SpringApplication.run(ExampleApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
System.out.println(exampleProperties.getServers());
}
}
在上述代码中,我们可以从 ExampleProperties 对象中获得绑定的属性值,并将其打印到控制台中。
绑定配置信息至 Bean 的实现方式与以上示例类似,只是需要定义一个含有 Map 类型属性的 Bean,并将配置文件中绑定到该 Bean 上。
以上就是@ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:@ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现 - Python技术站