Spring Bean继承 - 范围,自动装配,依赖等

时间:2011-06-26 21:13:04

标签: spring

来自Spring文档http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-child-bean-definitions

  

其余设置始终取自子定义:取决于,autowire模式,依赖性检查,单例,范围,延迟初始化。

我认为没有继承这些设置是有充分理由的,但却无法想到。原因是什么?

2 个答案:

答案 0 :(得分:2)

我认为这是因为它会引起更多混乱。想象一下花在调试为什么你的bean不在默认(单例)范围内的时间。或者将子bean注入到父depends-on的bean中的情况。你将得到循环依赖而无法注意到它。

Bean继承仅在注入的属性方面,而不是在bean设置方面。

答案 1 :(得分:0)

其中一个主要原因是Spring用于注入实现。通常,扩展类是实现,从自己的定义中获取配置详细信息是很自然的。

其他实际原因是注释不是继承的。如果一个接口有注释方法,那么在没有一些反射体操的情况下,这个注释在实现/扩展类中不会自动显示。