<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框架中,`parent`、`abstract`和`autowire`标签是核心配置中不可或缺的部分,它们各自承担着不同的职责,对于理解和优化Spring应用的依赖管理至关重要。接下来,我们将详细探讨这三个概念及其在实际开发中的...
Spring系列第12篇:lazy-init:bean延迟初始化Spring系列第13篇:使用继承简化bean配置(abstract & parent)Spring系列第14篇:lookup-method和replaced-method比较陌生,怎么玩的?Spring系列第15篇:代理详解(Java...
本文将详细介绍关于Spring XML配置文件的12个最佳实践,这些实践不仅有助于提高配置文件的可读性和可维护性,还能帮助开发者更好地理解和使用Spring框架。 #### 最佳实践 1. **避免使用自动绑定(Autowiring)** ...
"尚学堂Spring学习笔记" 本文档记录了尚学堂Spring学习笔记的重要知识点,涵盖了Spring...此外,本文档还记录了@Autowried、@Resource、@Component、@Repository、@Service、@Controller等注解的使用方式和注意事项。
Spring的`<beans>`和`<bean>`元素及其属性提供了强大的配置能力,使开发者能够灵活地定义、配置和管理应用程序中的组件。通过深入了解这些元素和属性,开发人员可以更有效地利用Spring框架的功能,构建更加健壮和可...
<bean id="bean2" class="com.bjsxt.spring.Bean2" parent="AbstractBean"> <!-- 覆盖或添加属性 --> ``` 6. **依赖注入 (Dependency Injection, DI)** Spring 通过DI管理bean之间的依赖关系。有三种方式注入...
<bean id="jpaFactoryBean" abstract="true" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <!-- Other JPA properties --> ``` 7. **实体扫描和事务管理**: 最后,别忘...
<bean id="bean3" class="com.bjsxt.spring.Bean3" parent="beanAbstract"/> ``` 以上就是关于Spring框架的一些基本知识和实践技巧,对于初学者来说,理解并掌握这些内容,可以有效地提高开发效率并降低项目的...
对于AOP的实现,Spring支持使用注解的方式,比如`@Aspect`、`@Before`、`@After`等,这些注解可以定义切面和通知,简化AOP的配置。 总结,Spring环境的搭建涉及到库的配置、配置文件的编写、bean的定义与依赖注入、...
在本文中,我们将总结 Spring 框架的基础知识点,涵盖了 Spring 框架的核心概念、IOC 容器、依赖注入、Bean 的定义和使用、属性编辑器的定义和使用等方面的知识点。 一、Spring 框架的核心概念 Spring 框架的核心...
网上的东西好大多都不能直接用,自己结合网上资料做了一个Struts2+Spring3+MyBatis3的测试工程,JUnit测试用例和WEB服务。 内涵完整jar包,解压直接可用,包括一个表文件。 Eclipse3.2+Tomcat/5.5+jdk1.5.0_17 - ...
在Spring框架中,配置Bean是核心功能之一,它允许开发者声明、管理和注入应用程序中的对象。Spring使用XML配置文件来描述这些Bean及其依赖关系。以下是对Spring Bean配置的详细解释: 1. `<beans>` 根元素:这是...
<bean id="commProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> *">PROPAGATION_REQUIRED *">PROPAGATION_REQUIRED *">PROPAGATION_REQUIRED,...
当配置文件中的Bean使用自动装配时,Spring会根据指定的策略自动匹配和装配Bean。 - **示例代码**: ```xml <bean id="orderService" class="com.lizjason.spring.OrderService" autowire="byName"/> ``` - *...
<bean id="shippingService" parent="abstractService" class="com.lizjason.spring.ShippingService"> <!-- 可以在这里添加特定于shippingService的额外配置 --> ``` - **效果**:通过这种方式,`...
在Spring框架中,IOC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理交给了容器,从而让代码更加解耦、可维护。本资料包"SpringIOC_泛型依赖注入.zip"主要关注的是Spring如何通过泛型进行...
在Spring XML配置文件中,可以使用简化的语法来为Bean的构造器参数和属性赋值。例如,以下两种写法是等价的: **原始写法:** ```xml <bean id="orderService" class="com.lizjason.spring.OrderService"> ...
例如,通过使用`abstract`属性和`parent`属性来减少重复配置,使用`autowire`和`dependency-check`属性来简化依赖注入的过程等。 总之,理解和掌握Spring的Bean配置机制对于任何Spring应用程序开发者来说都是非常...
12. `parent`: 指定Bean继承自哪个父Bean配置,继承的Bean会继承父Bean的属性和配置。 这些属性和元素组合起来,使得Spring配置文件能够灵活地配置和管理应用程序的组件,实现IoC(控制反转)和DI(依赖注入),...