`
xinklabi
  • 浏览: 1587781 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

spring中bean使用parent属性来减少配置

 
阅读更多

在基于spring框架开发的项目中,如果有多个bean都是一个类的实力,如配置多个数据源时,大部分配置的属性都一样,只有少部分不一样,经常是copy上一个的定义,然后修改不一样的地方。其实spring bean定义也可以和对象一样进行继承。

示例如下:

 <bean id="testBeanParent"  abstract="true"  class="com.wanzheng90.bean.TestBean">
        <property name="param1" value="父参数1"/>
        <property name="param2" value="父参数2"/>
  </bean>   
  <bean id="testBeanChild1" parent="testBeanParent"/>
   <bean id="testBeanChild2" parent="testBeanParent">
          <property name="param1" value="子参数1"/>
    </bean>

testBeanParent是父bean,其中abstract=“true”表示testBeanParen不会被创建,类似于于抽象类。其中testBeanChild1、testBeanChild2继承了testBeanParent、,其中testBeanChild2重新对param1属性进行了配置,因此会覆盖testBeanParent

对param1属性属性的配置。

代码如下:

TestBean

public class TestBean {
    
    private String param1;

    private String param2;

    public String getParam1() {
        return param1;
    }

    public void setParam1(String param1) {
        this.param1 = param1;
    }

    public String getParam2() {
        return param2;
    }

    public void setParam2(String param2) {
        this.param2 = param2;
    }
    
}

App:

public class App 
{
    public static void main( String[] args )
    {
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-context.xml");
        TestBean testBeanChild1 = (TestBean) context.getBean("testBeanChild1");
        System.out.println( testBeanChild1.getParam1());
        System.out.println( testBeanChild1.getParam2());
        TestBean testBeanChild2 = (TestBean) context.getBean("testBeanChild2");
        System.out.println( testBeanChild2.getParam1());
        System.out.println( testBeanChild2.getParam2());
    }
}

app main函数输出:

父参数1
父参数2
子参数1
父参数2
分享到:
评论

相关推荐

    spring bean 属性总结

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

    Spring的Bean配置说明

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

    spring的Bean配置说明

    Spring使用XML配置文件来描述这些Bean及其依赖关系。以下是对Spring Bean配置的详细解释: 1. `&lt;beans&gt;` 根元素:这是Spring配置文件的起点,它包含了所有的Bean定义。Spring容器会解析这个文件并创建相应的Bean...

    spring 的parent属性示例

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

    Spring In Action 继承Bean的配置

    在XML配置中,我们可以使用`&lt;bean&gt;`标签的`parent`属性来指定父Bean。例如: ```xml &lt;bean id="parentBean" class="com.example.ParentClass"&gt; &lt;/bean&gt; &lt;bean id="childBean" parent="parentBean" class=...

    SSH笔记-依赖、继承bean的配置

    在Spring 4版本中,我们可以通过XML配置文件或者Java配置类来声明bean的依赖关系。在提供的“SSH笔记-依赖、继承bean的配置”中,我们将重点讨论两种在XML配置中处理依赖和bean继承的方法:`parent`属性和`depends-...

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

    - 当构造函数包含多个相同类型的参数时,使用类型属性来进行参数匹配更为直观和易于理解。例如,对于下面的XML片段: ```xml &lt;bean id="billingService" class="com.lizjason.spring.BillingService"&gt; &lt;/...

    spring02-3

    在Spring的XML配置文件中,当一个bean定义使用`parent`属性引用另一个bean定义时,它将继承父bean的所有属性,包括初始化方法、属性注入等。这种方式可以实现配置的复用,减少重复代码,提高可维护性。例如,我们...

    Spring中XML配置的12个技巧

    - **解决方案**:为了避免这些问题,建议使用type属性来指定参数类型。例如,下面的XML配置: ```xml &lt;bean id="billingService" class="com.lizjason.spring.BillingService"&gt; &lt;/bean&gt; ``` 可以改进为: ...

    尚学堂Spring学习笔记

    2. 为需要注入公共属性的bean的parent属性指定为步骤①中配置的bean的id。 五、Spring注解 Spring注解可以通过以下方式实现: 1. 开启注解注入:需要在xml配置文件中加上。 2. 开启组件扫描:需要在xml配置文件中...

    Spring中XML配置文件的十二个最佳方法[借鉴].pdf

    自动绑定允许Spring通过bean类的自省来自动注入依赖,基于属性名称或类型进行匹配。尽管这可以简化配置,但可能导致配置的可读性和可维护性下降。在实际项目中,推荐明确地定义bean之间的依赖关系,以增强代码的...

    spring入门教程之bean的继承与自动装配详解

    Bean的依赖管理是通过`depends-on`属性来完成的,它可以确保指定的Bean在当前Bean实例化之前已经被创建。例如: ```xml &lt;bean id="car" class="com.sunny.beans.autowire.Car" p:brand="奥迪" p:price="30000"/&gt; ...

    Spring中xml的配置[定义].pdf

    - 形式三:`&lt;bean parent="someBean"&gt;`,通过`parent`属性引用父容器中的bean。 4. **内部bean(inner bean)**: 内部bean是在另一个bean的`&lt;property&gt;`或`&lt;constructor-arg&gt;`中定义的bean。它们没有ID或name...

    Spring 源码分析(Bean的初始化)

    在解析过程中,由于XML可以有嵌套的`&lt;beans&gt;`元素,`BeanDefinitionParserDelegate`使用一个parent-child结构来处理递归解析,确保默认属性的正确传播和保留。 在解析Bean定义时,Spring会检查每个`&lt;bean&gt;`元素的`...

    spring 配置文件简单说明

    它作为配置文件的根元素,提供了几个全局属性来控制所有包含的Bean的行为: 1. `default-init-method`: 如果设置了这个属性,那么配置文件中所有的Bean在初始化时都会调用指定的方法。这是一个方便的机制,用来确保...

    Spring XML配置的12个技巧

    - **技巧说明**:在构造函数参数配置中使用索引和类型信息,可以帮助更好地组织和理解配置文件。例如,使用`index`属性来指定构造函数参数的位置,或者使用`type`属性来指定参数的类型。 - **示例代码**: ```...

    spring1.2的配置-jdbc

    - **`&lt;bean id="dataSource" ...&gt;`**:这里定义了一个名为 `dataSource` 的 Bean,其类为 `DriverManagerDataSource`,这是一个简单的数据源实现,通过提供驱动名、用户名、密码和 URL 来配置数据库连接。...

    spring-boot中文参考指南

    - **在Spring环境中使用YAML暴露属性**:使用YAML配置Spring Bean属性。 - **Multi-profile YAML文档**:支持多环境配置。 - **YAML缺点**:讨论YAML相对于Properties文件的局限性。 - **类型安全的配置属性**:...

    第七章 Spring4 继承、依赖、引用

    在XML配置中,可以使用`parent`属性来指定父Bean。 2. **依赖注入(Dependency Injection, DI)** 依赖注入是Spring框架的核心特性,它允许我们将对象之间的依赖关系外部化,而不是在对象内部硬编码。这样,我们...

    springboot课件 Spring的Java配置方式

    这种方式允许开发者使用Java代码来配置Spring容器,相较于XML配置更加灵活、易于理解和调试。Spring 4.x进一步强化了这一特性,并成为了推荐的配置方式。 #### 三、Spring的Java配置方式 Spring的Java配置方式是...

Global site tag (gtag.js) - Google Analytics