`
kingone4
  • 浏览: 8174 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Spring的parent和abstract的使用

阅读更多
<bean id="superNewsProvider" class="..FXNewsProvider">
  <property name="newsListener">
     <ref bean="djNewsListener"/>
  </property>
  <property name="newPersistener">
     <ref bean="djNewsPersister"/>
  </property>
</bean>
<bean id="subNewsProvider" parent="superNewsProvider" class="..SpecificFXNewsProvider">
  <property name="newsListener">
     <ref bean="specificNewsListener"/>
  </property>
</bean>
我们在声明subNewsProvider的时候,使用了parent属性,将其值指定为superNewsProvider,
这样就继承了superNewsProvider定义的默认值,只需要将特定的属性进行更改,而不要全部又重新
定义一遍。

parent属性还可以与abstract属性结合使用,达到将相应bean定义模板化的目的。比如,我们还
可以像上面代码清单所演示的这样声明以上类定义。
下面使用模板化配置形式配置FXNewsProvider和SpecificFXNewsProvider
<bean id="newsProviderTemplate" abstract="true">
  <property name="newPersistener">
     <ref bean="djNewsPersister"/> 
  </property>
</bean>
<bean id="superNewsProvider" parent="newsProviderTemplate" 
  class="..FXNewsProvider">
  <property name="newsListener">
    <ref bean="djNewsListener"/>
  </property>
</bean>
<bean id="subNewsProvider" parent="newsProviderTemplate" class="..SpecificFXNewsProvider">
  <property name="newsListener">
    <ref bean="specificNewsListener"/> </property> 
  </bean>

newsProviderTemplate的bean定义通过abstract属性声明为true,说明这个bean定义不需要实
例化。实际上,这就是之前提到的可以不指定class属性的少数场景之一(当然,同时指定class和abstract="true"也是可以的)。该bean定义只是一个配置模板,不对应任何对象。superNewsProvider和subNewsProvider通过parent指向这个模板定义,就拥有了该模板定义的所有属性配置。当多个bean定义拥有多个相同默认属性配置的时候,你会发现这种方式可以带来很大的便利。


另外,既然这里提到abstract,对它就多说几句。容器在初始化对象实例的时候,不会关注将abstract属性声明为true的bean定义。如果你不想容器在初始化的时候实例化某些对象,那么可以将其abstract属性赋值true,以避免容器将其实例化。对于ApplicationContext容器尤其如此,因为默认情况下,ApplicationContext会在容器启动的时候就对其管理的所有bean进行实例化,只有标
志为abstract的bean除外。
分享到:
评论

相关推荐

    spring-boot-starter-parent-1.5.13.RELEASE.zip

    spring-boot项目pom.xm中parent依赖文件spring-boot-starter-parent-1.5.13.RELEASE.pom

    springboot 使用spring cache缓存 和 使用fastjson配置redis系列化

    springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot 使用spring cache缓存 和 使用fastjson配置redis系列化,springboot ...

    Spring Boot和Hazelcast使用详解

    主要介绍了Spring Boot和Hazelcast使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    parent_SpringCloud.zip

    SpringCloud Stream构建消息驱动微服务示例工程,包含Eureka集群SpringCloud Stream结合RabbitMq的使用,写作不易,望支持一下!

    配制Spring事务和JdbcTemplate使用

    配制Spring事务和JdbcTemplate使用 配制Spring事务和JdbcTemplate使用

    spring02-3

    spring中的parent标签abstract标签autowire标签的使用

    spring-boot-parent.rar

    spring-boot 父子项目的搭建,也不是很难,如果按照我博客上,没搭成功的话,就down下来看看,本人亲测是没有什么问题的,不是直接down其他人的项目。

    spring 的parent属性示例

    spring框架中bean标签parent属性的各类使用范例 总计12个范例,涵盖了class、init-method、 factory-method、lazy-init、 depends-on、autowire 多种属性的组合使用

    Spring cloud和Spring boot介绍

    Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只...

    spring-data-mongodb-parent-reference

    这个就是最新的spring-data-mongodb-parent-referencePDF文档(2013.4.18),如果觉得舍不得分,可以去官网上下。虽然是英文版的,但是官方的文档就是详细,让javaer更方便,快捷的操纵MongoDB

    SpringBatch+Spring+Mybatis+MySql (spring batch 使用jar)

    Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和...

    spring笔试题选择和简答题和springboot+cloud选择题和简答题

    答:Spring 事件机制是使用订阅和发布模式。 题目 12: 下列关于 Spring Boot 热部署方式不正确的是? 答:下列关于 Spring Boot 热部署方式都是正确的。 题目 13: 下列关于 Spring 事件机制不正确的是? 答:...

    Spring与ehcache结合使用

    Spring与ehcache结合使用,本地缓存的实现

    spring cloud和spring boot两个完整项目

    核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、OAth、Mybatis、Ace-cache等主要框架和中间件,UI采用Bootstrap、jquery等前端组件 spring boot项目是使用spring boot + thymeleaf 开发个人博客项目

    spring框架,技术详解及使用指导

    spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用指导spring框架,技术详解及使用...

    5-Spring-Boot(五):spring data jpa的使用.docx

    5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):spring data jpa的使用.docx5-Spring-Boot(五):...

    Spring基础:Spring AOP简单使用

    Spring基础:Spring AOP简单使用

    spring-boot-parent代码示例

    spring-boot-parent 代码示例

    Spring Cloud Gateway 2.1 使用手册中文版.pdf

    这个项目提供了一个构建在 Spring 生态系统之上的 API 网关,包括:Spring 5,Spring Boot 2 和 Project Reactor。 Spring Cloud Gateway 旨在提供一种简单而有效的 API 路 由方式,并为其提供横切关注点,例如:...

    spring_in_action-sixth-edition.pdf

    Spring Framework 是一个广泛使用的 Java 应用程序框架,它提供了一个通用的编程模型和配置机制,帮助开发者快速构建企业级应用程序。下面是对 Spring Framework 的详细知识点总结: 1. 什么是 Spring? Spring ...

Global site tag (gtag.js) - Google Analytics