美文网首页
Spring Boot 自定义配置key @Configurat

Spring Boot 自定义配置key @Configurat

作者: 光剑书架上的书 | 来源:发表于2021-08-13 22:32 被阅读0次

    方案1:使用@Value读取application.properties里的配置内容

    配置文件application.properties

    spring.application.name=springbootdemo

    server.port=8080

    mail.username=application-duan

    mail.password=application-duan123456

    测试代码类

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.beans.factory.annotation.Value;

    import org.springframework.context.annotation.PropertySource;

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.bind.annotation.RestController;

    @RestController

    @RequestMapping("/task")

    public class TaskController {

        @Value("${mail.username}")

        private String userName;

        @Value("${mail.password}")

        private String password;

        @RequestMapping(value = { "/", "" })

        public String hellTask() {

            System.out.println("userName:" + userName);

            System.out.println("password:" + password);

            return "hello task !!";

        }

    }

    结果:

    userName:application-duan

    password:application-duan123456

    方案2:使用@Value+@PropertySource读取其它配置文件(多个)内容

    读取mail.properties配置

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.beans.factory.annotation.Value;

    import org.springframework.context.annotation.PropertySource;

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.bind.annotation.RestController;

    @RestController

    @RequestMapping("/task")

    @PropertySource("classpath:mail.properties")

    public class TaskController {

        @Value("${mail.smtp.auth}")

        private String userName;

        @Value("${mail.from}")

        private String password;

        @RequestMapping(value = { "/", "" })

        public String hellTask() {

            System.out.println("userName:" + userName);

            System.out.println("password:" + password);

            return "hello task !!";

        }

    }

    结果:

    userName:false

    password:me@localhost

    方案3.对象映射的方式:@ConfigurationProperties

    @ConfigurationProperties(prefix ="db.clickhouse")

    实例代码

    配置类

    import lombok.Data;

    import org.springframework.boot.context.properties.ConfigurationProperties;

    import org.springframework.context.annotation.Configuration;

    /**

    * ClickHouse圈选数据库的常量

    */

    @Data

    @Configuration

    @ConfigurationProperties(prefix ="db.clickhouse")

    public class DbClickHouseConfig {

    String db_name ="ecom_dmp_ch";

    String db_cluster_name ="ecom_public";

    String user_tag_select ="user_tag_select";

    String user_behavior_select ="user_behavior_select";

    String user_tag_shard_column ="uid";

    String item_select_table ="item_tag_select";

    String item_shard_column ="item_id";

    String seller_select_table ="seller_tag_select";

    String seller_shard_column ="seller_id";

    String partition ="p_date";

    String partition_date_format ="yyyy-MM-dd";

    String driver_id ="clickhouse_01";

    }

    application.yml

    db:

    clickhouse:

    db_name:"ecom_dmp_ch_select"

        db_cluster_name:"ecom_public"

        user_tag_select:"user_tag_select"

        user_behavior_select:"user_behavior_select"

        user_tag_shard_column:"uid"

        item_select_table:"item_tag_select"

        item_shard_column:"item_id"

        seller_select_table:"ecom_dmp_ch"

        seller_shard_column:"seller_id"

        partition:"p_date"

        partition_date_format:"yyyy-MM-dd"

        driver_id:"clickhouse_01"

    相关文章

      网友评论

          本文标题:Spring Boot 自定义配置key @Configurat

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