我有一个像这样的单例豆定义:

<bean id="exampleBean" class="com.examples.ExampleBean">
  <property name="exampleBean2">
    <bean class="com.examples.ExampleBean2" />
  </property>
</bean>


ExampleBean可能是:

public class ExampleBean {
  private ExampleBean2 exampleBean2;

  public ExampleBean() { }

  public ExampleBean2 getExampleBean2() { return exampleBean2; }
  public void setExampleBean2(ExampleBean2 exampleBean2) { this.exampleBean2 = exampleBean2; }
}


问题在于,在某些情况下,com.examples.ExampleBean2 class在运行时可能不存在,当IoC尝试实例化exampleBean时,它将导致错误。

我需要的是忽略IoC中的此错误,并允许创建exampleBean,但保留exampleBean2属性null

所以问题是:这有可能吗?

感谢你的帮助。

最佳答案

如果您使用自动装配,则可以实现您想要的目标。

<bean class="com.examples.ExampleBean" autowire="byType" />
<bean class="com.examples.ExampleBean2" />


或通过注释

@Autowired(required=false)
ExampleBean2 exampleBean2;

07-24 20:29