一,一个类多个属性的情况
- 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=25my.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());}}}