五、深入理解容器中的Bean

抽象Bean和子Bean

把多个配置中相同的信息提取出来,集中成配置模板。
抽象Bean只是配置信息的模板,指定abstract="true"即可阻止Spring实例化该Bean,因此抽象Bean可以不指定class属性。元素指定parent属性即可指定该Bean是一个子Bean,parent属性指定该Bean所继承父Bean的id。
子Bean不能从父Bean继承如下属性:depends-on、 autowired、 singleton、 scope、 lazy-init。

beans.xml



     
       
      
         
         
      
      
      
      
      

当子Bean拥有和父Bean相同的配置信息时,子Bean的配置信息取胜。

Bean继承和Java继承的区别:

  • Spring中的子Bean和父Bean可以是不同类型,而Java中的子类是一种特殊的父类。
  • Spring中的Bean的继承是实例之间的关系,主要表现为参数值得延续;而Java中的继承是类之间的关系,主要表现为方法、属相的延续。
  • Spring中的子Bean不能作为父Bean使用,不具备多态性;Java中的子类实例完全可以当成父类实例使用。

你可能感兴趣的:(五、深入理解容器中的Bean)