子 bean 的定义继承父定义的配置数据。子定义可以根据需要重写一些值,或者添加其他值。

编写HelloWorld.java

 package com.example.spring;

 public class HelloWorld {
private String message1;
private String message2;
public void setMessage1(String message){
this.message1 = message;
}
public void setMessage2(String message){
this.message2 = message;
} public void getMessage1(){
System.out.println("Your Message1 : " + message1);
}
public void getMessage2(){
System.out.println("Your Message2 : " + message2);
}
}

编写HelloSpring.java

 package com.example.spring;

 public class HelloSpring {
private String message1;
private String message2;
private String message3; public void setMessage1(String message){
this.message1 = message;
} public void setMessage2(String message){
this.message2 = message;
} public void setMessage3(String message){
this.message3 = message;
} public void getMessage1(){
System.out.println("Spring Message1 : " + message1);
} public void getMessage2(){
System.out.println("Spring Message2 : " + message2);
} public void getMessage3(){
System.out.println("Spring Message3 : " + message3);
}
}

编写Beans.xml,使用parent属性将“helloSpring”定义为“helloWorld”的子Bean,这个子Bean继承message2的属性,重写message1的属性,并且引入一个属性message3。

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="helloWorld" class="com.example.spring.HelloWorld">
<property name="message1" value="Hello World : message1"></property>
<property name="message2" value="Hello World : message2"/>
</bean> <bean id="helloSpring" class="com.example.spring.HelloSpring" parent="helloWorld">
<property name="message1" value="Hello Spring : message1"/>
<property name="message3" value="Hello Spring : message3"/>
</bean> </beans>

编写Application.java

 package com.example.spring;

 import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Application {
public static void main(String[] args) {
//bean配置文件所在位置 D:\\IdeaProjects\\spring\\src\\Beans.xml
//使用AbstractApplicationContext容器
AbstractApplicationContext context = new ClassPathXmlApplicationContext("file:D:\\IdeaProjects\\spring\\src\\Beans.xml");
HelloWorld objA = (HelloWorld)context.getBean("helloWorld");
objA.getMessage1();
objA.getMessage2(); HelloSpring objB = (HelloSpring) context.getBean("helloSpring");
objB.getMessage1();
objB.getMessage2();
objB.getMessage3();
}
}

运行输出

Your Message1 : Hello World : message1
Your Message2 : Hello World : message2
Spring Message1 : Hello Spring : message1
Spring Message2 : Hello World : message2
Spring Message3 : Hello Spring : message3

Java框架spring 学习笔记(五):Bean定义继承的更多相关文章

  1. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  2. Java框架spring 学习笔记(十四):注解aop操作

    回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; ...

  3. Java框架spring 学习笔记(二):Bean的作用域

    Spring 框架Bean支持以下五个作用域: 下面介绍两种作用域,singleton和protoype singleton作用域 singleton作用域为默认作用域,在同一个ioc容器内getBe ...

  4. Java框架spring 学习笔记(三):Bean 的生命周期

    当一个 bean 被实例化时,它可能需要执行一些初始化使它转换成可用状态.当bean不再需要,并且从容器中移除时,需要做一些清除工作.为了定义安装和拆卸一个 bean,我们只要声明init-metho ...

  5. Java框架spring 学习笔记(九):Spring的bean管理(@Required、@Component、@Autowired、@Resource注解)

    注解:代码里面特殊的标记,使用注解可以完成相关功能 注解写法:@注解名称(属性名.属性值) @Required 用在set方法上,一旦用了这个注解,那么容器在初始化bean的时候必须要进行set,也就 ...

  6. Java框架spring 学习笔记(十):bean管理(注解和配置文件混合使用)

    配置文件和注解混合使用 创建对象操作使用配置文件方式实现 注入属性的操作使用注解方式实现 编写BookDao.java和OrderDao.java文件 BookDao.java package com ...

  7. Java框架spring 学习笔记(十五):操作MySQL数据库

    新建一个工程,添加对数据库的支持 下载mysql驱动包 mysql-connector-java-5.1.7-bin.jar,快捷键ctrl+alt+shift+s,添加jar包到工程 编写JdbcT ...

  8. Java框架spring 学习笔记(八):注入对象类型属性

    使用set方法注入对象属性 编写UserDao.java文件 package com.example.spring; public class UserDao { public void print( ...

  9. Java框架spring 学习笔记(六):属性注入

    属性注入:创建对象的时候,向类里面的属性设置值. Java属性注入有三种方法: 使用set方法注入 有参数构造注入 使用接口注入 Spring框架里面的属性注入方式 有参数构造属性注入 set方法属性 ...

随机推荐

  1. 黑电平校正BLC

    参考:https://www.cnblogs.com/zhangAlin/p/10661763.html

  2. python基础知识11---函数1

    函数 一.背景 在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处 ...

  3. VS2017编译GDAL(64bit)+解决C#读取Shp数据中文路径的问题

    编译GDAL过程比较繁琐,查阅了网上相关资料,同时通过实践,完成GDAL的编译,同时解决了SHP数据中文路径及中文字段乱码的问题,本文以“gdal-2.3.2”版本为例阐述整个编译过程. 一.编译准备 ...

  4. note 7 递归函数

    递归:程序调用自身 形式:在函数定义有直接或间接调用自身 阶乘:N!=123...N def p(n): x = 1 i = 1 while i <= n: x = x * i i = i + ...

  5. VMware与Centos系统安装

    Linux介绍 1. Linux Linux和windows一样都是操作系统,Linux是开源的.免费的.自由传播的类Unix操作系统软件. 是一个基于POSIX和UNIX的多用户.多任务.支持多线程 ...

  6. 数据库-PLSQL登录oracle数据库卡死(未响应)解决方法

    上次重装系统后重新安装了oracle和PLSQL,哪知道PLSQL登录不了,一登录就未响应,但如果不登录就不卡死,直接就进去了.在网上查了很多解决方法,都没有用. 后来在百度文库找到解决办法,重启Or ...

  7. Condtion type Z123 is mandatory!

    user exit: MV45AFZZ->userexit_save_document_prepare ZI_EXIT_SD_CNEMS_SAVE_PREPARE ***Start of ins ...

  8. Ehcache3.4 XML配置硬盘存储

    最近开始学习使用Ehcache, 3.4的文档实在过于简单,尤其是对于XML配置,例子太少.相对于硬编码,我更偏爱灵活的XML配置,为了实现xml配置,摸索了两天,终于运行成功. ehcache.xm ...

  9. c语言函数参数类似继承的传递

    函数的参数如果是一个父结构的指针, 这个结构包含在另一个子结构中, typedef struct test_node_one test_node_one_t; typedef struct test_ ...

  10. kolla queens on centos7.5 -all in one

    目录 环境准备 开始配置 快照,快照,快照 pull镜像并部署 登录配置OpenStack 环境准备 我这里用workstation创建了一个虚拟机,安装centos7.5 mini系统,这台虚拟机上 ...