• ConfigurationProperties注解详解


    @ConfigurationProperties和@Value注解用于获取配置文件中的属性定义并绑定到Java Bean或属性中

    一个简单的例子
    @ConfigurationProperties需要和@Configuration配合使用,我们通常在一个POJO里面进行配置:

    @Data
    @Configuration
    @ConfigurationProperties(prefix = "mail")
    public class ConfigProperties {
    
        private String hostName;
        private int port;
        private String from;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    @Data
    @Configuration
    @ConfigurationProperties(prefix = “mail”)
    public class ConfigProperties {

    private String hostName;
    private int port;
    private String from;
    
    • 1
    • 2
    • 3

    }

    #Simple properties
    mail.hostname=host@mail.com
    mail.port=9000
    mail.from=mailer@mail.com
    
    • 1
    • 2
    • 3
    • 4

    Spring的属性名字匹配支持很多格式,如下所示所有的格式都可以和hostName进行匹配:

    mail.hostName
    mail.hostname
    mail.host_name
    mail.host-name
    mail.HOST_NAME
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如果你不想使用@Configuration,,可以有以下选择

    //指定单个类,其中绑定bean注入到spring容器
    //启用ConfigurationProperties.属性是类的名字
    //@EnableAutoConfiguration({NestAppBean.class})
    
    //直接扫描多个包 ,其中绑定bean注入到spring容器
    //也是启用ConfigurationProperties.属性是类的 名字
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ==========================================================
    如果你不想使用@Configuration, 那么需要在@EnableConfigurationProperties注解中手动导入配置文件如下:

    @SpringBootApplication
    @EnableConfigurationProperties(ConfigProperties.class)
    public class ConfigPropApp {
        public static void main(String[] args) {
            SpringApplication.run(ConfigPropApp.class,args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    我们也可以在@ConfigurationPropertiesScan中指定Config文件的路径:

    @SpringBootApplication
    @ConfigurationPropertiesScan("com.flydean.config")
    public class ConfigPropApp {
        public static void main(String[] args) {
            SpringApplication.run(ConfigPropApp.class,args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这样的话程序只会在com.flydean.config包中查找config文件。

  • 相关阅读:
    RocketMQ概论
    QT中的垃圾回收机制,操作系统中的内存分配,程序的编译过程
    LFS(Linux From Scratch)构建过程全记录(七):进入Chroot并构建临时工具
    pytorch张量创建、张量复制
    C语言经典题练习--指针型变量的使用
    【C++】笔试训练(六)
    PG索引失败排查记录
    一种解决多旅行商问题的改进的遗传算法
    marven项目打包第三方jar包
    访问学者在英国访学有哪些风俗禁忌?
  • 原文地址:https://blog.csdn.net/m0_64803878/article/details/133959218