Pregunta

Tiene dos definiciones de frijol:

archivo a.xml

<bean id="A" class="com.A">
 <property name="bClass" ref="B"/>
</bean>

archivo b.xml

<bean id="B" class="com.B"/>

En algunos casos b.xml archivo no contiene definición de frijol B.
Y de otro lado, archivo a.xml siempre contiene un enlace a la definición B.

¿Cómo definir referencia a bean B sea opcional , a fin de evitar org.springframework.beans.factory.NoSuchBeanDefinitionException

¿Fue útil?

Solución 3

@Autowired (requerido = false) ayudado

Otros consejos

No se puede. Si usted tiene una referencia a B, entonces B debe existir. Usted necesita asegurarse de que existe algún tipo de talón de B, la definición de lo que sería reemplazado por la definición de B en b.xml.

Como alternativa, No inyectar B en A, pero mirada maquillaje A hasta B usando BeanFactory.getBean("B"), y manejar la potencial ausencia de B mediante programación.

Sin embargo, otra posibilidad (en la parte superior de éstos sugerido por skaffman) es invertir la depenency. Deje que el B frijol conoce la A frijol. Incluso puede registrarse a sí mismo dentro de ella - es decir, llamar al organismo, por ejemplo:.

public class B {
  private A a;

  public void init() {
    a.setB(this);
  }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top