2011-06-26 9 views
5

De la documentación primavera http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-child-bean-definitions:de beans Spring Herencia - Alcance, Autowire, depende-en, etc

Los valores restantes se siempre tomados de la definición del niño: depende, de modo Autowire, verificación de dependencia, Singleton , alcance, init flojo

Creo que hay una buena razón para no heredar estas configuraciones, pero no puedo pensar en una. ¿Cuales son las razones?

Respuesta

0

Una de las principales razones es que Spring se utiliza para inyectar implementaciones. Por lo general, las clases ampliadas son las implementaciones y es natural recoger los detalles de configuración de sus definiciones.

Otra razón práctica es que las anotaciones no se heredan. Si una interfaz tiene métodos anotados, esta anotación no es automáticamente visible en las clases de implementación/ampliación sin una gimnasia de reflexión.

2

Creo que es porque podría causar más confusión. Imagine el tiempo dedicado a la depuración de por qué su bean no está en el alcance predeterminado (singleton). O el caso cuando el bean hijo se inyecta en un bean que el padre depends-on. Obtendrá una dependencia circular sin poder notarlo.

La herencia del frijol solo se refiere a las propiedades inyectadas, y no a la configuración del frijol.

Cuestiones relacionadas