我是靠谱客的博主 刻苦鸭子,这篇文章主要介绍【SpringBoot教程】根据环境自动装配,现在分享给大家,希望可以做个参考。

SpringBoot 利用SPI机制 实现自动装配,如项目中使用FastDFS只要引入依赖,配置会自动被实例。

根据业务需求,某些服务器只使用minio、某些服务只使用fastdfs。要实现即使导入了依赖也不会自动装配,而是根据环境自动装配。

实现自动装配

以 fastdfs-client实现自动装配为例,通常情况下自动装配会在META-INF/spring.factories 定义扫描类的路径,通过源代码查看核心代码如下:

image-20220729175557676

关闭默认的自动装配

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教程】根据环境自动装配内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(125)

评论列表共有 0 条评论

立即
投稿
返回
顶部