前言
当我们先获取application.xml中几个值的时候用@Value比较方便,但是如果一些配置频繁使用,或者有关联关系,把他们放在一块更好的时候,可以用@ConfigurationProperties注解,直接将配置项映射为对象
使用
假如配置文件如下所示
connection.username=adminconnection.password=admin
定义实体类,装载属性
@Component@ConfigurationProperties(prefix="connection")public class ConnectionConfig { private String username; private String password ; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
我们还可以把@ConfigurationProperties还可以直接定义在@bean的注解上,这是bean实体类就不用@Component和@ConfigurationProperties了
@SpringBootApplicationpublic class ShowApplication{ @Bean @ConfigurationProperties(prefix = "connection") public ConnectionSettings connectionSettings(){ return new ConnectionSettings(); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); }}
需要使用的时候,直接@Autowired注入即可
@Servicepublic class ShowService {@Autowired ConnectionSettings conn;}
yaml文件和properties文件都支持
本文为小编原创文章,首发于Java识堂微信公众号,一个高原创,高收藏的公众号