一,一个类多个属性的情况
- application.properties配置文件写法
my.config.ip=127.0.0.1
my.config.port=8080
- 自定义配置类:MyTestConfig
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "my.config", ignoreUnknownFields = false)
public class MyTestConfig {
public static final Logger log = LoggerFactory.getLogger(MyTestConfig.class);
private String ip;
private int port;
public String getIp() {
return ip;
}
public int getPort() {
return port;
}
public void setIp(String ip) {
this.ip = ip;
log.info("【配置管理】配置ip:" + ip);
}
public void setPort(int port) {
this.port = port;
log.info("【配置管理】配置端口:" + port);
}
}
二,一个类多个属性,驼峰字段名
- application.properties配置文件写法
#线程池参数:核心线程数
my.config.threadpool.core-pool-size=5
#线程池参数:最大线程数数
my.config.threadpool.max-poll-size=5
#线程池参数:阻塞的队列大小,-1代表没有限制,也就是int的最大值
my.config.threadpool.queue-size=-1
#核心线程之外的空闲线程 的存活时间(单位,秒)
my.config.threadpool.keep-alive-time=0
- 自定义配置类:MyThreadPoolConfig
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.List;
@Configuration
@ConfigurationProperties(
prefix = "my.config.threadpool",
ignoreUnknownFields = false
)
public class MyThreadPoolConfig {
public static final Logger log = LoggerFactory.getLogger(MyThreadPoolConfig.class);
private int corePoolSize = 10;// 线程池的核心线程数量
private int maxPollSize = 10;//最大的线程数量
private int queueSize = -1;//阻塞的队列大小
private long keepAliveTime = 0L;//线程空闲时间
public void setCorePoolSize(int corePoolSize) {
this.corePoolSize = corePoolSize;
log.info("【配置管理】线程池的核心线程数量:" + corePoolSize + "个线程");
}
public void setMaxPollSize(int maxPollSize) {
this.maxPollSize = maxPollSize;
log.info("【配置管理】最大的线程数量:" + maxPollSize + "个线程");
}
public void setQueueSize(int queueSize) {
this.queueSize = queueSize;
log.info("【配置管理】阻塞的队列大小:" + (queueSize > 0 ? corePoolSize + "个" : "不限制"));
}
public void setKeepAliveTime(long keepAliveTime) {
this.keepAliveTime = keepAliveTime;
log.info("【配置管理】线程空闲时间(单位,秒):" + (keepAliveTime > 0 ? keepAliveTime + "秒" : "不限制"));
}
}
三,需要配置成List集合的情况
- application.properties配置文件写法
my.config.test.item[0]=test_1
- 自定义配置类:MyTestConfig
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.List;
@Configuration
@ConfigurationProperties(
prefix = "my.config.test",
ignoreUnknownFields = false
)
public class MyTestConfig {
public static final Logger log = LoggerFactory.getLogger(MyTestConfig.class);
private List<String> item;
public void setItem(List<String> item) {
this.item = item;
for (String str : item) {
log.info("【配置管理】新增一个子项:" + str);
}
}
}
四,需要配置成List<自定义类>集合的情况
- application.properties配置文件写法
my.config.test.item[0].name=zhangsan
my.config.test.item[0].age=25
my.config.test.item[1].name=lisi
my.config.test.item[1].age=26
- 实体类:MyPeople
public class MyPeople {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age= age;
}
}
- 自定义配置类:MyTestConfig
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import java.util.List;
@Configuration
@ConfigurationProperties(
prefix = "my.config.test",
ignoreUnknownFields = false
)
public class MyTestConfig {
public static final Logger log = LoggerFactory.getLogger(MyTestConfig.class);
private List<MyPeople> item;
public List<MyPeople> getItem() {
return item;
}
public void setItem(List<MyPeople> item) {
this.item = item;
for (MyPeople people : item) {
log.info("people : " + people.getName() + " " + people.getAge());
}
}
}