@ConfigurationProperties 使用及源码总结

该注解由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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容