Java @ConditionalOnProperty 与 @Conditional

文章记录起因:有个项目中开始时用了对象存储,开始是公司一个同事写的,后来过了一段时间后,甲方要求对象存储换为了华为云存储,问题一是不确定原来的还用不用,问题二是改动的地方有点多,如果一个一个地方的去改,需要换回去的时候又要从头到尾再去改一遍。所以需要实现扩展了华为云存储的服务,同时要简单的能换回原来的服务。
实现逻辑:

  1. 创建一个对象存储的基本接口( IStorageService )
  2. 让原来的服务与现在需要服务都实现这个基本接口( IStorageService )
  3. 各自实现对象存储的逻辑
  4. 两个服务类上使用 @ConditionalOnProperty 注解标明区别
  5. 配置文件配置需要生效的服务

一、@ConditionalOnProperty

@ConditionalOnProperty 是 Spring 框架中的一个条件注解,它允许你根据应用程序的配置属性来控制是否应该创建一个 bean 或配置一个类。
以下是 @ConditionalOnProperty 注解的主要属性及其详细说明:
在这里插入图片描述

  • name:要检查的属性的名称。这是一个必需的属性。

  • havingValue:要求属性必须具有的值。如果未指定,那么属性只要存在就足够。

  • prefix:属性名称的前缀。如果指定了 prefixname 属性值将会被拼接到 prefix 后面。

  • valuename 属性的别名。通常与 name 一起使用,用于提供一个额外的属性名称。

  • matchIfMissing:当属性不存在时,默认值为 false。如果设置为 true,则即使属性不存在,也会视为匹配成功。
    这些属性允许你根据应用程序的配置属性来灵活地控制 bean 或配置类的创建和激活。你可以使用这些属性来根据不同的配置设置,动态地配置和管理应用程序的行为

@ConditionalOnProperty 使用:

@Service
@ConditionalOnProperty
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值