18、Spring中Bean继承

Spring中子Bean的使用:
随着项目越来越大,会有很多雷同的Bean出现,然而相同的操作,我们会提取出一个抽象Bean,个性需求的Bean只需要继承抽象Bean,就完成了业务扩展和应用,提出了重复冗余代码。Spring容器
初始化不加载抽象Bean。这样可以提升性能。要成为抽象Bean,只需要添加abstract="true"即可。
    示例代码:
        public abstract class BrControllerBase{
            
            public abstract ModelAndView queryForList(HttpServletRequest request, HttpServletResponse response) throws Exception;
        }
        public class ContractInfo extends BrControllerBase{
            public ModelAndView queryForList(HttpServletRequest request, HttpServletResponse response) throws Exception{
                ModelAndView mav = new ModelAndView();
                boolean flag = true;
                mav.addObject("flg", flag);
                return mav;
            }
        }
    Spring-base.xml配置:
    <bean id = "baseController" abstract = "true"/>
    <bean id = "contractInfo" class = "ContractInfo"  parent = "baseController"/>
    测试代码:
    public class Test{
        public static void main(String[] args){
            ApplicationContext ctx = new ClassXmlApplicationContext("spring-base.xml");
            ContractInfo info = ctx.getBean("contractInfo", ContractInfo.class);
            info.queryForList();
        }
    }
Spring中的Bean继承和Java中Bean继承异同:
    1、Spring中父子Bean可以是不同的类型,但Java中保证了子类是特殊的父类;
    2、Spring中Bean是实例之间的关系,因此主要表现为参数之间的延续,Java中继承是类之间的关系,表现为属性和方法的延续;
    3、Spring中Bean不可作为父Bean使用,不具备多态性,Java中子类完全可以当成父类实例使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值