我是靠谱客的博主 刻苦鸭子,最近开发中收集的这篇文章主要介绍【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教程】根据环境自动装配所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部