0
点赞
收藏
分享

微信扫一扫

Spring Boot 自定义配置key @ConfigurationProperties(prefix =

方案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"


举报

相关推荐

0 条评论