您的位置:首页 > 编程语言 > Java开发

spring boot 通过@Value,@ConfigurationProperties获取配置

2017-08-22 10:51 1126 查看

spring boot 获取配置项值

使用版本是1.5.4

举例一个线程池的配置:

在application.yml添加配置项及值

# 线程池配置
taskexecutor:
corePoolSize: 5
maxPoolSize: 10
queueCapacity: 25


通过@Value 获取值

@Configuration
@EnableAsync
public class ExecutorConfig {

@Value("${taskexecutor.corePoolSize}")
private int corePoolSize;

@Value("${taskexecutor.maxPoolSize}")
private int maxPoolSize;

@Value("${taskexecutor.queueCapacity}")
private int queueCapacity;

@Bean
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.setThreadNamePrefix("TaskExecutor-");
executor.initialize();
return executor;
}
}


通过@ConfigurationProperties 获取值

@Configuration
@EnableAsync
@ConfigurationProperties(ignoreUnknownFields = false,prefix = "taskexecutor")
public class ExecutorConfig {

private int corePoolSize;

private int maxPoolSize;

private int queueCapacity;

@Bean
public Executor getAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.setThreadNamePrefix("TaskExecutor-");
executor.initialize();
return executor;
}
}


通过@ConfigurationProperties加载配置文件,将配置项与bean及属性关联,指定ignoreUnknownFields当有属性未匹配到值时会抛出异常,用prefix指定配置项的前缀。

@ConfigurationProperties还支持层级结构、 布尔、集合等类型的值注入

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-typesafe-configuration-properties
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息