Java 创建一个不能自动连接的Springbean

Java 创建一个不能自动连接的Springbean,java,spring,Java,Spring,我有一个扩展了B的类a,B实现了C。目前,a接受B有一个输入参数,并且是唯一定义的作为C实现的bean,因此每当需要C时,它就会自动连接 在不改变所有需要C的地方或A/B/C的类结构的情况下,我需要使B成为一个已定义的bean,以便可以重用相同的实例。问题是我有两个C的实现(A和B)。是否有办法标记B,使其无法自动连接 当前: <bean id="A" class="A"> <constructor-arg> <bean class="B"&

我有一个扩展了B的类a,B实现了C。目前,a接受B有一个输入参数,并且是唯一定义的作为C实现的bean,因此每当需要C时,它就会自动连接

在不改变所有需要C的地方或A/B/C的类结构的情况下,我需要使B成为一个已定义的bean,以便可以重用相同的实例。问题是我有两个C的实现(A和B)。是否有办法标记B,使其无法自动连接

当前:

  <bean id="A" class="A">
    <constructor-arg>
      <bean class="B">
    </constructor-arg>
  </bean>

需要(因此可以在其他地方使用相同的B实例):


您可以使用附加到
@Autowired
的限定符

例如,如果您想用id
B
连接bean,可以执行以下操作:

@Autowired
@Qualifier("B")
private C c;

您可以使用附加到
@Autowired
的限定符

例如,如果您想用id
B
连接bean,可以执行以下操作:

@Autowired
@Qualifier("B")
private C c;

您可以使用附加到
@Autowired
的限定符

例如,如果您想用id
B
连接bean,可以执行以下操作:

@Autowired
@Qualifier("B")
private C c;

您可以使用附加到
@Autowired
的限定符

例如,如果您想用id
B
连接bean,可以执行以下操作:

@Autowired
@Qualifier("B")
private C c;

如果要从自动关联中删除bean,则可以将该bean标记的autowire-candidate属性设置为false。 例如,考虑您的情况(这里我设置B bean的<强> AutoRead候选< /强>属性为false)


如果要从自动关联中删除bean,则可以将该bean标记的自动关联候选属性设置为false。 例如,考虑您的情况(这里我设置B bean的<强> AutoRead候选< /强>属性为false)


如果要从自动关联中删除bean,则可以将该bean标记的自动关联候选属性设置为false。 例如,考虑您的情况(这里我设置B bean的<强> AutoRead候选< /强>属性为false)


如果要从自动关联中删除bean,则可以将该bean标记的自动关联候选属性设置为false。 例如,考虑您的情况(这里我设置B bean的<强> AutoRead候选< /强>属性为false)



完美,正是我想要的!完美,正是我想要的!完美,正是我想要的!完美,正是我想要的!这是可行的,但需要我在使用C的每个地方进行更改,这对于我的体系结构来说是不可伸缩的。这是可行的,但需要我在使用C的每个地方进行更改,这对于我的体系结构来说是不可伸缩的。这是可行的,但需要我在使用C的每个地方进行更改,这对于我的架构来说是不可伸缩的。这可以工作,但需要我在使用C的每个地方都进行更改,这对于我的架构来说是不可伸缩的。