阿昌教你自定义Spring配置文件提示
Posted 阿昌喜欢吃黄桃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿昌教你自定义Spring配置文件提示相关的知识,希望对你有一定的参考价值。
1、前言
总结一下今天在谷粒商城学习到自定义Spring配置文件的提示内容
2、正文
此处以配置线程池配置举例使用:
@Configuration
public class ThreadPoolConfig {
@Bean
public ThreadPoolExecutor threadPoolExecutor(){
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
20,
200,
20,
TimeUnit.SECONDS,
new LinkedBlockingDeque<>(100000),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy());
return threadPoolExecutor;
}
}
如上,我们配置了线程池的在容器中,但是我们发现以上的代码的线程池核心数、最大线程数、keepalive时间都是耦合在代码中的,那我们想解耦,想把他移动至Spring的配置文件中可以吗?
- 那我们就可以先创建一个类,这个类是去读取配置文件中的数据的,如下:
//指定配置文件中的前缀是什么
@ConfigurationProperties(prefix = "achangmall.thread")
@Component
@Data
public class ThreadPoolConfigProperties {
private Integer coreSize;
private Integer MaxSize;
private Integer keepAliveTime;
}
- 编写后,Spring提示我们一个地址 【Spring提示地址】,让我们引入一个maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
这样子,我们在写Spring配置文件中的时候就会有联想
记得需要重启一下项目才可以有联想提示
- 因为我们已经把读取配置文件的类
ThreadPoolConfigProperties
加入了Spring容器中,所以我们可以直接用入参体去直接注入
@Configuration
public class ThreadPoolConfig {
@Bean
public ThreadPoolExecutor threadPoolExecutor(ThreadPoolConfigProperties pool){//通过入参直接注入
ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
pool.getCoreSize(),
pool.getMaxSize(),
pool.getKeepAliveTime(),
TimeUnit.SECONDS, new LinkedBlockingDeque<>(100000),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy());
return threadPoolExecutor;
}
}
如上的操作之后,
就可以自定义Spring配置文件提示和解耦配置类中的配置到配置文件中!!!
以上是关于阿昌教你自定义Spring配置文件提示的主要内容,如果未能解决你的问题,请参考以下文章
阿昌教你自定义拦截器&自定义参数解析器&自定义包装HttpServletRequest