当前位置: 首页 > 知识库问答 >
问题:

@有条件不处理继承的类?

林子石
2023-03-14

我有一个简单的类,注释为@条件(MyCondition.class)

例如:

@Conditional(MyCondition.class)
public class MyBean {
  ...
}

然后我有一个扩展这个bean的配置bean:

@Configuration
public class MyConfig extends MyBean {
  ...
}

似乎忽略了有条件的,无论条件如何解决,都会始终处理配置(甚至没有调用)

只要我将有条件注释移动到MyConfig,一切都会正常工作。

从文档:

@条件注释可以以下列任何一种方式使用:

  • 作为使用@组件直接或间接注释的任何类的类型级注释,包括@配置类

我假设第一点适用于这里,即MyConfig间接地用配置注释。或者间接引用了使用条件注释的其他注释吗?

谢谢你的洞察力

共有1个答案

陈浩
2023-03-14

根据@Con条件的javadoc

注意:@条件批注未继承;不考虑来自超类或重写方法的任何条件。

@条件注释不是@Inherated,因此它在子类上不可见。

 类似资料:
  • 这是链接中问题的继续:我正在学习java中的异常处理(基本上是在继承中),子类方法必须抛出异常,该异常是父类方法的子类。 “当子类重写超类中的方法时,子类方法定义只能在父类方法(或重写方法)的throws子句中指定异常类的所有或子集” 这是一条规则。但我不知道制定这条规则的原因是什么,为什么不允许反之亦然。为什么要创建此规则

  • FAQs in section [24]: [24.1] 如何表示“私有继承”? [24.2] 私有继承和组合(composition)有什么类似? [24.3] 我应该选谁:组合还是私有继承? [24.4] 从私有继承类到父类需要指针类型转换吗? [24.5] 保护继承和私有继承的关系是什么? [24.6] 私有继承和保护继承的访问规则是什么? 24.1 如何表示“私有继承”? 用 : priv

  • 我有根实体: 与父实体有关系的: 还有子实体: 我想搜索partner.category.code="ABC"的所有MoralEntity。

  • 我在Spring Batch中遇到了一个问题,这通常很简单。 我有多个步骤,面向块处理。对于每个步骤,我都想使用相同的ItemReader。 这是我的步骤宣言: 我的请求有一些参数,我想用准备状态设置器替换它们。 所以我的意图是为每个bean创建多个bean(对于每个步骤),以便为每个bean调用特定的准备语句。 我有以下错误: 我做错了什么?如果你需要更多的细节,请告诉我。 谢谢你的帮助。

  • 问题内容: 偏重于继承而不是继承 是非常流行的短语。我读了几篇文章,最后每篇文章都说 当类之间存在纯IS-A关系时,请使用继承。 本文中的一个示例: 在 Apple 和 Fruit 之间存在明显的IS-A关系,即Apple IS-A Fruit,但作者也将其显示为Apple HAS-A Fruit(组成),以显示通过继承实现时的陷阱。 我在这里变得有些困惑,声明的含义是什么 当类之间存在纯IS-A

  • 我有一个类型<code>build</code>有一个标志模板,根据活动标志位,它从这些类型继承。这使我可以从具有大量配置的许多子类中“构建”类: 所以< code >构建 但它不编译,说<code>空</code>已经是一个直接基类: 我怎样才能做到这一点,而不必创建4个不同的空结构来避免冲突呢?