Srpingboot注解:@ConditionalOnProperty的用法

2023-11-01

在之前我就一直有一个想法,就是有的bean我不想注入,比如说有的时候用的是A的bean,可能换了一个不同的系统可能要用B的bean,我可不可以自己去配置什么时候注入A什么时候注入B, 而不是我都注入,用到那个用哪个。实际@Conditional@ConditionalOnProperty这一类的注解可以帮助我们,这里我们选择@ConditionalOnProperty来做。

我们知道Spring有一个注解@Conditional,它的作用是按照一定的条件进行判断,配合@Bean注解,可以再条件规则的结果来判断是否注入这个Bean。SpringBoot在@Conditional基础上搞出来好几个注解,@ConditionalOnProperty就是一个方便我们使用,看名字就知道通过读propertise文件来获取对应的属性进行条件判断。

以下面代码来作为例子

@Bean
    @ConditionalOnProperty(prefix = "zp.
appearance", name = "is",havingValue = “handsome”)
    public RedisClient configLxzlClient() {
        return new ZpIsHandsome();
    }

对应的我在属性文件proertise配置对应的下面的一行

zp.appearance.is: handsome

prefix 前缀是用来匹配对应的属性

name是和prefix一起拼接在一起来找到具体的属性

value就是对应的属性的值,如果匹配到(就是你设置的propertise的值,和你在@ConditionalOnProperty上设置havingVlaue匹配)

还是以上面作为例子
zp.appearance.is对应的值是 handsome和@ConditionalOnProperty设置的havingValue是一致的,则加载Bean注入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Srpingboot注解:@ConditionalOnProperty的用法 的相关文章

  • 无法解析符号“AuthUI”

    我正在添加 firebase google 和 Gmail 登录 但是当我粘贴代码时 onAuthStateChanged NonNull FirebaseAuth firebaseAuth 方法我收到此错误 无法解析符号 AuthUI 在
  • Mockito - 监视真实对象调用原始方法

    想象一下下面的代码 List list List spy spy list doThrow new NullpointerException when spy get 0 doThrow 执行list get 0 这根本没有意义 我想定义模
  • 理解 Spring AOP [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在使用 Spring 3 0 框架 但仍然是新手 谁能通俗地解释一下什么是AOP编程 一个简短的例子肯定会有帮助 Spring 如
  • 导入的项目抛出 java.lang.ClassNotFoundException

    所以我将一个现有的项目导入到 eclipse 中 但让它工作时遇到了很多麻烦 该项目与其他三个图书馆项目一起提供 谷歌播放服务库 捕获活动 肖像二维码 As soon as I imported the project I went und
  • 同步 Set 线程的构造函数副本安全吗?

    获取同步版本的最简单方法java util Set将使用Collections synchronizedSet 像这样 Set mySyncSet Collections synchronizedSet new HashSet The Ja
  • Java 可以启动 Windows UAC 吗?

    正如标题所说 我想知道用 Java 编写的程序是否可能 并且只有java 以管理员权限重新启动自己 最好是 jar 以本机 Windows UAC 的方式显示 为了使其对用户更可信 我做了功课 发现可以使用来完成此操作C 和 Java 之间
  • 如何解决 javax.net.ssl.SSLHandshakeException 错误?

    我通过 VPN 连接来设置库存 API 来获取产品列表 效果很好 一旦我从网络服务获得结果并绑定到用户界面 而且我将 PayPal 与我的应用程序集成在一起 以便在我拨打电话付款时进行快速结帐 但我遇到了此错误 我使用 servlet 进行
  • 片段和通知:针对通知中的不同活动;取决于屏幕配置

    问题 如何决定做什么Activity a Notification如果目标可能取决于配置 屏幕尺寸 方向等 则应启动 就像人们使用时经常出现的情况一样Fragments Details 让我们考虑一下新闻阅读器示例 http develop
  • JavaFX 多线程 - 连接线程不会更新 UI

    我正在尝试创建一个加载程序对话框 用户可以在其中知道程序正在加载所请求的内容并且程序正在按预期运行 但正因为如此 我需要join 解析器线程和之前继续主线程 这使得对话框空白 解析器任务 java public class ParserTa
  • 快速排序应用程序中这些交换代码行的目的是什么?

    我试图理解快速排序的实现或应用程序以找到第 k 个最小元素 这是我试图理解的代码 public int quicksort int a int start int end int k if start lt end int pivot pa
  • JUnit 集成测试的“IT.java”文件名后缀(而不是“Test.java”)是否是一种约定? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我习惯于用一个名称来命名我的 JUnit 集成测试 Test java最后例如DatabaseConnectionTest java并将它们放在
  • Kafka 0.10 Java 客户端超时异常:包含 1 条记录的批次已过期

    我有一个单节点 多 3 个代理 Zookeeper Kafka 设置 我正在使用 Kafka 0 10 Java 客户端 我编写了以下简单的远程 在与 Kafka 不同的服务器上 生产者 在代码中我用 MYIP 替换了我的公共 IP 地址
  • 本机查询 (JPA) 未重置并返回相同的旧结果

    我有一个本机 sql 查询如下 for init i 0 i lt 2 i String sql Select from accounts where id Query query em createNativeQuery sql Acco
  • String.substring 在 Java 中到底做了什么?

    我一直想如果我这样做String s Hello World substring 0 5 然后我就得到一个新字符串s Hello Java API 文档中也记录了这一点 返回一个新字符串 该字符串是该字符串的子字符串 但当我看到下面两个链接
  • 手写签名对比

    有谁知道java中一种将手写文本样本 例如签名 亲笔签名等 与一个或多个样本进行比较的方法 最好是开源的 你可以看看这个OCR小程序 http www heatonresearch com articles 42 page1 html
  • 针对未经身份验证的用户的 Spring Security 404 页面

    我正在使用 Spring Boot 和 Thymeleaf 我有一个自定义 404 模板页面定义在src main resources templates error 404 html 当用户登录时这可以正常工作 然而 当他们注销时 他们不
  • 信号量如何工作?

    信号量可以小于0吗 我的意思是 假设我有一个 N 3 的信号量 并且我调用 down 4 次 那么 N 将保持为 0 但一个进程将被阻塞 反之亦然 如果一开始我调用 N 可以大于 3 吗 因为在我看来 如果 N 可以高于 3 如果一开始我调
  • web.xml 过滤器如何工作?您可以将两个过滤器映射到所有页面 (/*) 并指定顺序吗?

    我想使用 Spring Security 它说将过滤器映射到 但我已经有一个映射到 的过滤器 即 Tuckee URLRewrite 过滤器 是否可以将两个过滤器映射到同一事物 并且有没有办法指定过滤器的调用顺序 是的你可以 servlet
  • 使用具有透明度的 IndexColorModel 绘制图像

    这是我的问题 我想在基于具有透明度的 IndexColorModel 的 BufferedImage 上应用转换 平移 旋转 剪辑 索引 0 是我的透明像素 索引 1 是黑色 索引 2 是白色 依此类推 源图像 即在转换之前 被实例化如下
  • a.equals(a) 什么时候返回 false?

    我想知道在哪些情况下java中的变量不能相等 使用equals 方法 自身 我这里说的不是对象而是变量本身 只要代码编译并在调用 equals 时返回 false 到目前为止 我发现的唯一情况是 public class A public

随机推荐