• java springboot通过EnableConfigurationProperties全局声明bean并处理装配


    Spring Boot中 我们想条件装配一个类 首先 我们要声明他的bean
    而 EnableConfigurationProperties 可以直接将 要全局声明的类绑定在 属性类中
    例如 我们随便创建一个类 就叫 textData 吧 参考代码如下

    package com.example.webdom.domain;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    @ConfigurationProperties("textdata")
    public class textData {
        private int time;
        private String units;
    
        public int getTime() {
            return time;
        }
    
        public String getUnits() {
            return units;
        }
    
        public void setTime(int time) {
            this.time = time;
        }
    
        public void setUnits(String units) {
            this.units = units;
        }
    
        @Override
        public String toString() {
            return "textData{" +
                    "time=" + time +
                    ", units='" + units + '\'' +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    这里 我们用 toString 限制了 后面输出整个类 输出两个属性 让人看得懂

    然后 我们定义的两个属性 写上get和set方法 方便与外界交互
    然后 注解 ConfigurationProperties 指定读取配置文件中的 textdata对象默认装配到我们这个类的属性中

    既然都写了 ConfigurationProperties 用配置文件 textdata 了
    我们找到 application 配置文件 加上这两个值 是什么值并不是很重要 反正类型和名字跟属性类对得上就行
    在这里插入图片描述
    然后 我们启动类编写代码如下

    package com.example.webdom;
    
    import com.example.webdom.domain.textData;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    
    @SpringBootApplication
    @EnableConfigurationProperties({textData.class})
    public class WebDomApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(WebDomApplication.class, args);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    唯一特别的就是 @EnableConfigurationProperties({textData.class}) 我们指定 textData类 默认声明这个bean
    不难看出 EnableConfigurationProperties中是个数组 可以给多个类的

    然后 我们在需要用 textData类的地方 默认装配 然后输出
    在这里插入图片描述
    这里 我们textData中并没有声明bean的代码 但是 EnableConfigurationProperties声明了

    所以我们就可以在项目的任何一个地方 直接去条件装配这个bean
    运行结果如下
    在这里插入图片描述
    这个输出显然很完美 不但 textData拿到了 ConfigurationProperties也从配置文件中装配了属性

  • 相关阅读:
    MAVEN
    dubbo原理深入剖析
    树莓派4B(Ubuntu 22.04 server)与Windows11网线直连(无显示器)
    Java中如何清空一个HashSet对象呢?
    基于ISO智能交通系统框架的 LTE-V2X技术规范
    (三十)大数据实战——HBase集成部署安装Phoenix
    Visual Studio Code配置c/c++环境
    数据可视化--了解数据可视化和Excel数据可视化
    freeswitch 使用 silero-vad 静音拆分使用 fastasr 识别
    SpirngBoot<读完包你更上一层楼>
  • 原文地址:https://blog.csdn.net/weixin_45966674/article/details/133830750