zoukankan      html  css  js  c++  java
  • @ConfigurationProperties + @EnableConfigurationProperties

    1、ConfigurationProperties

    在类上通过@ConfigurationProperties注解声明当前类为属性读取类。

    举例:

    @ConfigurationProperties(prefix = "jdbc")

    prefix="jdbc" 读取属性文件中,前缀为jdbc的值。

    在类上定义各个属性,名称必须与属性文件中 jdbc. 后面部分一致。

    需要注意的是,如果我们没有指定属性文件的地址,SpringBoot 默认读取 application.properties/application.yml  中的属性文件名。

    @Data
    @ConfigurationProperties(prefix = "jdbc")
    class JdbcProperties {
    
        private String url;
        private String driverClaprivate;
        private String username;
        private String password;
    }

    2、EnableConfigurationProperties

    @ConfigurationProperties 注解我们可以理解成用来把 properties 配置文件转化为 Bean 使用的,而 @EnableConfigurationProperties 注解的作用是让 @ConfigurationProperties 注解生效。

    如果只配置 @ConfigurationProperties 注解,在 IOC 容器中是获取不到 properties 配置文件转化的 Bean 的。

    那么我们如何获取我们使用了 @ConfigurationProperties 注解的类呢?

    2.1 @Autowired 注入

    @Autowired
    private JdbcProperties prop;

    2.2 构造函数注入

    private JdbcProperties prop;
    public JdbcConfig(Jdbcproperties prop){
      this.prop = prop;
    }

    2.3 声明有@Bean的方法参数注入

    @Bean
    public TestBean dataSource(JdbcProperties jdbcProperties) {
        syso(jdbcProperties.getUsername());// syso 简写
        return new TestBean;
    }

    通过上方三种方式,都可以在 JdbcProperties jdbcProperties 中直接拿到注入的数据。

  • 相关阅读:
    读《梦断代码》有感
    The Third Group Meeting!
    第一次课程作业项目报告
    第四次读后感
    个人作业进度(五)
    个人作业进度(四)
    个人作业进度(三)
    个人进度(二)
    个人作业进度(一)
    java中类的封装与继承
  • 原文地址:https://www.cnblogs.com/niceyoo/p/10028949.html
Copyright © 2011-2022 走看看