美文网首页
@ConfigurationProperties 使用及源码总结

@ConfigurationProperties 使用及源码总结

作者: WY_250e | 来源:发表于2018-02-12 00:00 被阅读0次

该注解由springboot提供

有时候我们需要读取配置文件的信息,封装为一个实体类实例,这时候,可以使用@ConfigurationProperties,它可以把同类的配置信息(实际上就是具有相同前缀的属性值)自动封装成实体类实例

首先在配置文件里面,这些信息是这样子滴

connection.username=admin
connection.password=abcd

三种使用方法,当然都需要有setter方法
一. 和@Component结合使用,共同作用于类定义

@Component
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {
    private String username;
    private String password ;

   // setter方法...
}

二. 我们还可以把@ConfigurationProperties还可以直接定义在@bean的注解上,这时bean实体类定义就不需要@Component和@ConfigurationProperties了

public class ConnectionSettings {
    private String username;
    private String password ;

   // setter方法...
}

@SpringBootApplication
public class DemoApplication{
    @Bean
    @ConfigurationProperties(prefix = "connection")
    public ConnectionSettings connectionSettings(){
        return new ConnectionSettings();
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

三. 借助@ EnableConfigurationProperties 将类加入到bean容器中, 不需要有@Component

// ConnectionSettings.java
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {
    private String username;
    private String password ;

   // setter方法...
}

// spring boot 主类
@SpringBootApplication
@EnableConfigurationProperties(ConnectionSettings.class)
public class DemoApplication{
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}


最后我们可以通过@Autowired进行引用

参见:
http://blog.csdn.net/yingxiake/article/details/51263071
http://blog.csdn.net/qq_26000415/article/details/78942494
https://www.jianshu.com/p/b71845c142d0

相关文章

网友评论

      本文标题:@ConfigurationProperties 使用及源码总结

      本文链接:https://www.haomeiwen.com/subject/zczltftx.html