`
kingone4
  • 浏览: 8343 次
  • 性别: 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除外。
分享到:
评论

相关推荐

    spring02-3

    在Spring框架中,`parent`、`abstract`和`autowire`标签是核心配置中不可或缺的部分,它们各自承担着不同的职责,对于理解和优化Spring应用的依赖管理至关重要。接下来,我们将详细探讨这三个概念及其在实际开发中的...

    JAVA spring 系列案例50个和学习资料

    Spring系列第12篇:lazy-init:bean延迟初始化Spring系列第13篇:使用继承简化bean配置(abstract & parent)Spring系列第14篇:lookup-method和replaced-method比较陌生,怎么玩的?Spring系列第15篇:代理详解(Java...

    spring配置文件:整理总结Spring中XML配

    本文将详细介绍关于Spring XML配置文件的12个最佳实践,这些实践不仅有助于提高配置文件的可读性和可维护性,还能帮助开发者更好地理解和使用Spring框架。 #### 最佳实践 1. **避免使用自动绑定(Autowiring)** ...

    尚学堂Spring学习笔记

    "尚学堂Spring学习笔记" 本文档记录了尚学堂Spring学习笔记的重要知识点,涵盖了Spring...此外,本文档还记录了@Autowried、@Resource、@Component、@Repository、@Service、@Controller等注解的使用方式和注意事项。

    spring bean 属性总结

    Spring的`&lt;beans&gt;`和`&lt;bean&gt;`元素及其属性提供了强大的配置能力,使开发者能够灵活地定义、配置和管理应用程序中的组件。通过深入了解这些元素和属性,开发人员可以更有效地利用Spring框架的功能,构建更加健壮和可...

    spring学习小结

    &lt;bean id="bean2" class="com.bjsxt.spring.Bean2" parent="AbstractBean"&gt; &lt;!-- 覆盖或添加属性 --&gt; ``` 6. **依赖注入 (Dependency Injection, DI)** Spring 通过DI管理bean之间的依赖关系。有三种方式注入...

    Spring-boot项目多数据源配置

    &lt;bean id="jpaFactoryBean" abstract="true" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"&gt; &lt;!-- Other JPA properties --&gt; ``` 7. **实体扫描和事务管理**: 最后,别忘...

    自己总结的Spring实用资料

    &lt;bean id="bean3" class="com.bjsxt.spring.Bean3" parent="beanAbstract"/&gt; ``` 以上就是关于Spring框架的一些基本知识和实践技巧,对于初学者来说,理解并掌握这些内容,可以有效地提高开发效率并降低项目的...

    Spring环境搭建

    对于AOP的实现,Spring支持使用注解的方式,比如`@Aspect`、`@Before`、`@After`等,这些注解可以定义切面和通知,简化AOP的配置。 总结,Spring环境的搭建涉及到库的配置、配置文件的编写、bean的定义与依赖注入、...

    spring 复习整理

    在本文中,我们将总结 Spring 框架的基础知识点,涵盖了 Spring 框架的核心概念、IOC 容器、依赖注入、Bean 的定义和使用、属性编辑器的定义和使用等方面的知识点。 一、Spring 框架的核心概念 Spring 框架的核心...

    Struts2+Spring3+MyBatis3完整实例

    网上的东西好大多都不能直接用,自己结合网上资料做了一个Struts2+Spring3+MyBatis3的测试工程,JUnit测试用例和WEB服务。 内涵完整jar包,解压直接可用,包括一个表文件。 Eclipse3.2+Tomcat/5.5+jdk1.5.0_17 - ...

    spring的Bean配置说明

    在Spring框架中,配置Bean是核心功能之一,它允许开发者声明、管理和注入应用程序中的对象。Spring使用XML配置文件来描述这些Bean及其依赖关系。以下是对Spring Bean配置的详细解释: 1. `&lt;beans&gt;` 根元素:这是...

    spring1.2的配置-jdbc

    &lt;bean id="commProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"&gt; *"&gt;PROPAGATION_REQUIRED *"&gt;PROPAGATION_REQUIRED *"&gt;PROPAGATION_REQUIRED,...

    Spring XML配置的12个技巧

    当配置文件中的Bean使用自动装配时,Spring会根据指定的策略自动匹配和装配Bean。 - **示例代码**: ```xml &lt;bean id="orderService" class="com.lizjason.spring.OrderService" autowire="byName"/&gt; ``` - *...

    Spring中XML配置的12个技巧

    &lt;bean id="shippingService" parent="abstractService" class="com.lizjason.spring.ShippingService"&gt; &lt;!-- 可以在这里添加特定于shippingService的额外配置 --&gt; ``` - **效果**:通过这种方式,`...

    SpringIOC_泛型依赖注入.zip

    在Spring框架中,IOC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理交给了容器,从而让代码更加解耦、可维护。本资料包"SpringIOC_泛型依赖注入.zip"主要关注的是Spring如何通过泛型进行...

    Spring XML配置十二个最佳实践

    在Spring XML配置文件中,可以使用简化的语法来为Bean的构造器参数和属性赋值。例如,以下两种写法是等价的: **原始写法:** ```xml &lt;bean id="orderService" class="com.lizjason.spring.OrderService"&gt; ...

    Spring的Bean配置说明

    例如,通过使用`abstract`属性和`parent`属性来减少重复配置,使用`autowire`和`dependency-check`属性来简化依赖注入的过程等。 总之,理解和掌握Spring的Bean配置机制对于任何Spring应用程序开发者来说都是非常...

    spring 配置文件简单说明

    12. `parent`: 指定Bean继承自哪个父Bean配置,继承的Bean会继承父Bean的属性和配置。 这些属性和元素组合起来,使得Spring配置文件能够灵活地配置和管理应用程序的组件,实现IoC(控制反转)和DI(依赖注入),...

Global site tag (gtag.js) - Google Analytics