yml 配置文件映射到实体类
Siona
yml 配置文件映射到实体类
多层嵌套的 yml
1. application.yml 配置文件
debezium:
connector:
name: my-connector-001
connector-class: io.debezium.connector.mysql.MySqlConnector
database:
hostname: localhost
port: 3306
user: root
password: 123456
server:
id: 1234
name: my-server-1
2. 映射到配置类
package com.qx.dao.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* Debezium 配置类
* @Description TODO
* @Version 1.0.0
* @Date 2023/12/15 11:34
* @Created by Siona
*/
@Component
@Data
@ConfigurationProperties(prefix = "debezium")
public class DebeziumConfigProperties {
private Map<String, Object> connector;
private Map<String, Object> database;
}
3. 使用配置类
package com.siona.dao.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
import java.util.Map;
/**
* @Description TODO
* @Version 1.0.0
* @Date 2023/12/15 14:21
* @Created by Siona
*/
@Configuration
public class Test1 {
@Resource
private DebeziumConfigProperties debeziumConfigProperties;
@Bean
public void test() {
Map<String, Object> obj = (Map<String, Object>) debeziumConfigProperties.getDatabase().get("server");
System.out.println(obj.get("id"));
System.out.println(obj.get("name"));
}
}
直接使用 application.yml 中的属性
DebeziumProperties.java
配置类
package com.siona.dao.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* Debezium 配置类
* @Description TODO
* @Version 1.0.0
* @Date 2023/12/18 16:02
* @Created by Siona
*/
@Data
@Component
public class DebeziumProperties {
@Value("${debezium.database.hostname}")
private String hostname;
@Value("${debezium.database.port}")
private String port;
}
使用
@Autowired
private DebeziumProperties debeziumProperties;
// 调用
debeziumProperties.getHostname();