yaml配置复杂实体类属性
yaml配置复杂实体类属性不建议使用@value注解。
1. yaml配置
yaml配置意为在kudu下面添加一个info实体类集合,但是使用普通的接收方法无法使用
kudu:
info:
- hostname: 192.168.31.83
username: root
password: root
- hostname: 192.168.31.84
username: root
password: root
- hostname: 192.168.31.85
username: root
password: root
- hostname: 192.168.31.86
username: root
password: root
cluster: http://192.168.31.86:8881/v1/cluster
username: user
password: pwd
接受代码
@Value("${presto.info}")
private List<info> infoList;
info实体类 使用@Configuration/@Component
@ConfigurationProperties(prefix = "kudu.info")
无法解析
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.io.Serializable;
@Data
@NoArgsConstructor
@Configuration
@ConfigurationProperties(prefix = "kudu.info")
public class Info implements Serializable {
private String hostname;
private String username;
private String password;
}
2. 如何解析配置的实体类属性
配置实体类
info
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
public class Info implements Serializable {
private String hostname;
private String username;
private String password;
}
kudu
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.List;
@NoArgsConstructor
@Data
@Component
@ConfigurationProperties(prefix = "kudu")
public class Kudu implements Serializable {
private List<Info> info;
private String cluster;
private String username;
private String password;
}
解析方式 在kudu实体类绑定配置文件,使用autowired注入
@Autowired
private Kudu kudu;

浙公网安备 33010602011771号