继承

  • bean继承:两个类之间大多数的属性都相同,避免重复配置,通过bean标签的parent属性重用已有的Bean元素的配置信息
  • 继承指的是配置信息的复用,和java类的继承没有关系

video.java(父类

package net.cybclass.sp.domain;

public class Video {
private int id;
private String title;
public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
}
}

Video2.java(子类)

package net.cybclass.sp.domain;

public class Video2 {
private int id;
private String title;
private String summary; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public String getSummary() {
return summary;
} public void setSummary(String summary) {
this.summary = summary;
} @Override
public String toString() {
return "Video2{" +
"id=" + id +
", title='" + title + '\'' +
", summary='" + summary + '\'' +
'}';
}
}

applicationContext.xml

<?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="video" class="net.cybclass.sp.domain.Video">
<property name="id" value="8"></property>
<property name="title" value="SpringBoot课程专题"></property>
</bean>
<bean id="video2" class="net.cybclass.sp.domain.Video2" parent="video">
<property name="summary" value="这个是summary"></property>
</bean>
</beans>

app.java

package net.cybclass.sp;

import net.cybclass.sp.domain.Video;
import net.cybclass.sp.domain.Video2;
import net.cybclass.sp.domain.VideoOrder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class app {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
// VideoOrder video=(VideoOrder) applicationContext.getBean("videoOrder");
// System.out.println(video.getVideo()); Video2 video=(Video2) applicationContext.getBean("video2");
System.out.println(video);
}
}

验证

依赖关系

depends-on

<?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="video" class="net.cybclass.sp.domain.Video">
<property name="id" value="8"></property>
<property name="title" value="SpringBoot课程专题"></property>
</bean>
<bean id="video2" class="net.cybclass.sp.domain.Video2" parent="video">
<property name="summary" value="这个是summary"></property>
</bean>
<!--设置两个bean的关系,video要先于videoOrder实例化-->
<bean id="videoOrder" class="net.cybclass.sp.domain.VideoOrder" depends-on="video">
<property name="id" value="8"></property>
<property name="outTradeNo" value="12312"></property>
<property name="video" ref="video"></property>
</bean>
</beans>

Spring里面bean的依赖和继承的更多相关文章

  1. Spring核心——Bean的依赖注入

    依赖注入在设计模式与IoC这篇文章中,介绍了Spring基础的三大支柱的两项内容——IoC.Bean.本篇将继续围绕着Bean的创建时的注入方式来介绍Spring的核心思想与设计模式. 天底下所有面向 ...

  2. 采用Spring管理Bean和依赖注入

    1. 实例化spring容器和从容器获取Bean对象 实例化Spring容器常用的两种方式: 方法一: 在类路径下寻找配置文件来实例化容器 [推荐使用] ApplicationContext ctx ...

  3. Srping - bean的依赖注入(Dependency injection)

    目录 1 概述 2 两种基本的依赖注入方式 2.1 构造函数方式 2.2Setter方式 3 其他依赖注入功能 3.1 <ref/>标签引用不同范围的bean 3.2 内部bean 3.3 ...

  4. Spring 中bean的作用、定义

    Spring 中bean的作用.定义: 创建一个bean定义,其实质是用该bean定义对应的类来创建真正实例的"配方(recipe)".把bean定义看成一个配方很有意义,它与cl ...

  5. Spring的Bean的生命周期

    一:生命周期执行的过程如下:1) spring对bean进行实例化,默认bean是单例.2) spring对bean进行依赖注入.3) 如果bean实现了BeanNameAware接口,spring将 ...

  6. Spring IOC -bean对象的生命周期详解

    生命周期执行的过程如下:1) spring对bean进行实例化,默认bean是单例2) spring对bean进行依赖注入3) 如果bean实现了BeanNameAware接口,spring将bean ...

  7. [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. Spring(八):Spring配置Bean(一)BeanFactory&ApplicationContext概述、依赖注入的方式、注入属性值细节

    在Spring的IOC容器里配置Bean 配置Bean形式:基于xml文件方式.基于注解的方式 在xml文件中通过bean节点配置bean: <?xml version="1.0&qu ...

  9. (转) Spring读书笔记-----Spring的Bean之配置依赖

    前一篇博客介绍了Spring中的Bean的基本概念和作用域(Spring读书笔记-----Spring的Bean之Bean的基本概念),现在介绍Spring Bean的基本配置. 从开始我们知道Jav ...

  10. Spring中Bean的定义继承

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/bean-definition-inheritance.html: Bean定义继承 bean定义可 ...

随机推荐

  1. java stream数据分组 stream().collect(groupingBy

    List<Map<String, Object>> foreList = forecastDataDao.getcityforeresults(param); Map<S ...

  2. C语言:约瑟夫问题——使用循环链表解决

    传说有30个乘客同乘一条船,因为严重超载,加上风浪水作,危险万分.船长告诉乘客,只有将全船一半的乘客投入海 中,其余人才能幸免于难.他们约定了一个规则:30个人围成一圈,由第一个人数起,依次报数,数到 ...

  3. .net Mvc5Webapi接口接收参数为null的一种情况分享

    同样的前后端项目,其他接口用post接收自定义对象形式的参数,是能成功接收的.在这个前提下,出现某个接口接收的参数为null或值全是默认值,可能的原因是这样: 前端定义的参数的字段比后台定义的dto对 ...

  4. 性能优化陷阱之hash真的比strcmp快吗

    最近网上冲浪的时候看到有人分享了自己最近一次性能优化的经验.我向来对性能是比较敏感的,所以就点进去看了. 然而我越看越觉得蹊跷,但本着"性能问题和性能优化要靠性能测试做依据",我不 ...

  5. FlexBox 行间距

    问题背景 在Flex布局方式下, 父容器约定是换行的方式, 不足以容纳一行子元素的时候, 会单独进行折行, 那么折行的行间距如何处理呢? 解决办法 通过在子Item上面设置margin-top可以模拟 ...

  6. wordpress博客系统报错

    第一种,只显示nginx的默认网页 说明wordpress的网页配置文件没有被系统读取 我们就需要去查看nginx的配置文件/etc/nginx/conf.d/default.conf 首先,查看是不 ...

  7. vue自定义指令 - directive

    https://cn.vuejs.org/v2/guide/custom-directive.html 除了核心功能默认内置的指令,Vue也允许注册自定义指令.有的情况下,对普通 DOM 元素进行底层 ...

  8. 算法学习笔记(46): 离散余弦变换(DCT)

    前置知识:离散傅里叶变换 傅里叶变换在上文中更多的是 OI 中的理解以及应用.但是傅里叶变换奥秘还很多. 回顾 \(\omega_n\) 在傅里叶变换中的定义:\(e^{i \frac {2\pi} ...

  9. kettle从入门到精通 第二十四课 kettle 部署生产常用命令

    一.设置KETTLE_HOME环境变量 假设kettle软件目录为/xxx/data-integration vi ~/.bash_profile export KETTLE_HOME=/xxx/da ...

  10. C#.NET CORE .NET8连接SQL SERVER 2008 R2 报:证书链是由不受信任的颁发机构颁发的

    一.C#.NET CORE .NET8连接SQL SERVER 2008 R2  报:证书链是由不受信任的颁发机构颁发的 报错内容: A connection was successfully est ...