概述
SpringBoot 利用SPI机制 实现自动装配,如项目中使用FastDFS只要引入依赖,配置会自动被实例。
根据业务需求,某些服务器只使用minio、某些服务只使用fastdfs。要实现即使导入了依赖也不会自动装配,而是根据环境自动装配。
实现自动装配
以 fastdfs-client实现自动装配为例,通常情况下自动装配会在META-INF/spring.factories 定义扫描类的路径,通过源代码查看核心代码如下:
关闭默认的自动装配
SpringBoot 有两种方式关闭默认的自动装配,根据业务需要关闭默认的自动装配
第一种启动类配置:
@SpringBootApplication(exclude={FdfsClientConfig.class})
第二种配置文件配置:
spring.autoconfigure.exclude: com.github.tobato.fastdfs.FdfsClientConfig
根据环境自动装配
核心是通过@Conditional动态注册bean,配置文件中添加以下配置:
# 文件服务器类型(minio、fastdfs)
file.type:minio
fastdfs配置类
@Component
@Import(FdfsClientConfig.class)
@ConditionalOnProperty(name = "file.type", havingValue = "fastdfs")
public class FastDFSConfig {
}
minio配置类
@Component
@Import(MinioConfigs.class)
@ConditionalOnProperty(name = "file.type", havingValue = "minio")
public class MinioConfig {
}
实现效果如下,配置文件file.type指定minio将会注册Minio配置类,指定fastdfs会注册fastdfs配置类。
最后
以上就是刻苦鸭子为你收集整理的【SpringBoot教程】根据环境自动装配的全部内容,希望文章能够帮你解决【SpringBoot教程】根据环境自动装配所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复