环境配置
<!-- 生成MATA-INF元数据,用户提供IDEA自动提示配置文件的输入 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
打开注解开关
使用
属性类编写
@Data
@ToString
@Component
@ConfigurationProperties(prefix = "config")
public class Config {
private int serverPort;
private String localCachePath;
private List<String> whiteList;
private List<String> blackList;
private Date expireDate;
private Map<String,String> parameterMap;
private Map<String,String> backupsMap;
private Address address;
private List<Address> addressList;
private String desc;
private String key;
private int secret;
private int timeOut;
private long randomKey;
}
@Data
//@AllArgsConstructor 这里一定不能使用这个全参数构造函数注解,否则无法正常树形输入
public class Address {
private String provinceCode;
private String provinceName;
}
配置文件编写
config:
server-port: 10800
local-cache-path: E\
white-list: [117.25.168.59, 153.12.86.21]
black-list:
- 177.26.28.49
- 214.56.98.12
expire-date: 2025/12/31
parameter-map: [environment: 测试,maxConnectCount: 12000]
backups-map:
- backupPath: F\
- backupRetryCount: 3
address:
provinceCode: 130000
provinceName: 河北省
address-list:
- {provinceCode: 130000, provinceName: 河北省}
desc: 服务器在${config.address.provinceName}
key: ${random.value}
secret: ${random.int}
time-out: ${random.int[15]}
random-key: ${random.long(100000, 10000000)}
测试
@Autowired
Config config;
@Test
void valueInject() {
System.out.println(config.toString());
}
输出日志
Config(
serverPort=10800,
localCachePath=E\,
whiteList=[117.25.168.59, 153.12.86.21],
blackList=[177.26.28.49, 214.56.98.12],
expireDate=Wed Dec 31 00:00:00 CST 2025,
parameterMap={0.environment=测试, 1.maxConnectCount=12000},
backupsMap={0.backupPath=F\, 1.backupRetryCount=3},
address=Address{provinceCode='130000', provinceName='河北省',},
addressList=[Address(provinceCode='130000', provinceName='河北省')],
desc=服务器在河北省,
key=cf573fb0e9a119f4fb9c447ea870fcf8,
secret=-949551574,
timeOut=9,
randomKey=864964
)