【SSH快速进阶】——Spring抽象公共配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/52025166

  在设计类的时候,往往把多个类公共的部分抽象出来,做成父类,其余的类继承它。

  Spring的配置文件也一样,当多个bean有公共部分时,为了减少配置量,也可以把公共的部分抽出来,其余的部分都“继承”它。

  比如下面的两个实体

public class Bean1 {
    private int id;
    private String name;
    private String sex;
    //setter、getter
}
public class Bean2 {
    private int id;
    private String name;
    private String sex;
    private int age;
    //setter、getter
}

  配置文件

<bean id="bean1" class="com.danny.spring.Bean3">
    <property name="id" value="123"></property>
    <property name="name" value="Danny"></property>
    <property name="sex" value="male"></property>
</bean>

<bean id="bean2" class="com.danny.spring.Bean4">
    <property name="id" value="123"></property>
    <property name="name" value="Danny"></property>
    <property name="sex" value="male"></property>
    <property name="age" value="26"></property>
</bean>

  Bean1和Bean2有三个属性都是相同的(并且属性值也相同,在真实的应用场景中有很多情况,多个不同的bean都有相同的依赖),在配置文件中就有一大半都是重复的。

  这时可以把配置文件改一下,抽象出一个公共的“父类”,剩余的部分再“继承”它:

<bean id="abstractBean" abstract="true">
    <property name="id" value="123"></property>
    <property name="name" value="Danny"></property>
    <property name="sex" value="male"></property>
</bean>

<bean id="bean1" class="com.danny.spring.Bean3" parent="abstractBean"/>

<bean id="bean2" class="com.danny.spring.Bean4" parent="abstractBean">
    <property name="age" value="26"></property>
</bean>

  上面配置中有一个“抽象Bean”——abstractBean,从它的abstract属性值就可以看出,它不会被实例化,只会被其他的Bean“继承”。从bean1和bean2的parent属性值可以看出,它们都“继承”了abstractBean。


【 转载请注明出处——胡玉洋《【SSH快速进阶】——Spring抽象公共配置》】

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构

想要面试BATJ,先做完这160道Java面试题~

2、访问修饰符public,private,protected,以及不写(默认)时的区别?

1092
来自专栏weixuqin 的专栏

JSP 语法

脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。(其中声明的变量为局部变量)

1152
来自专栏大内老A

ASP.NET MVC Controller激活系统详解:默认实现

Controller激活系统最终通过注册的ControllerFactory创建相应的Conroller对象,如果没有对ControllerFactory类型或...

2299
来自专栏java系列博客

深入理解Java内存模型(四)——volatile

1572
来自专栏LanceToBigData

JavaWeb(三)JSP之3个指令、6个动作、9个内置对象和4大作用域

前言   前面大概介绍了什么是JSP,今天我给大家介绍一下JSP的三个指令、6个动作以及它的9大内置对象。接下来我们就直接进入正题 一、JSP的3个指令 JSP...

2807
来自专栏码匠的流水账

使用maven构建java9 service实例

本文主要研究下如何在maven里头构建java9 multi module及service实例

801
来自专栏Java帮帮-微信公众号-技术文章全总结

JSP简单入门(1)

JSP页面中可以包含模板元素、脚本元素、EL表达式、注释、指令、和行为元素(JSP标签)等内容。有三种类型的脚本元素:JSP脚本片断、JSP表达式和JSP声明,...

41211
来自专栏机器学习从入门到成神

在MyEclipse中使用Junit 的方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

901
来自专栏小尘哥的专栏

【springboot+easypoi】一行代码搞定简单的word导出

2224
来自专栏编程

如何修改动态代理的私有变量

最近在写一个 Spring Controller 的 JUnit 单元测试时,需要将一个Mock对象塞入到Controller的私有成员变量中,发现怎么都塞不成...

1989

扫码关注云+社区

领取腾讯云代金券