今日学习Spring框架,重点记录配置文件中Bean的继承特性与使用方法。
1、 以下是某Spring Java项目的目录结构示意图。
2、 下图展示了该Maven项目的pom.xml配置,项目仅依赖两个外部包,具体信息所示。
3、 下图展示了一个自定义的Address类,包含两个属性,提供了对应的set和get方法,并重写了toString方法以便查看对象内容。
4、 在Bean配置文件中,通过p命名空间实现属性注入,定义两个Bean。第二个Bean利用parent属性继承第一个Bean,并重写其中某一项属性值,实现配置的复用与定制,具体结构所示。
5、 下图展示了主程序入口代码,通过获取IOC容器并根据ID取得对应Bean,验证了Bean配置继承成功,具体所示。
6、 将bean配置文件中首个bean的属性修改为true,表示该bean被定义为抽象bean。由于是抽象bean,因此无法被实例化,不能用于创建具体对象,仅作为其他bean继承的模板,其主要作用是提供共用配置或属性,供其他非抽象bean进行继承和扩展。
7、 下图展示了程序的主入口代码,首先获取IOC容器,再通过ID从容器中获取指定Bean。运行时出现错误,提示该Bean为抽象类,无法实例化,说明抽象Bean不能被创建对象。
8、 修改入口程序,仅通过ID获取子Bean,运行成功,所示。
