一、bean之间的关系:

1)继承:

People.java实体类:

package com.cy.entity;public class People {private int id;private String name;private int age;private String className;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getClassName() {return className;}public void setClassName(String className) {this.className = className;}@Overridepublic String toString() {return "People [id=" + id + ", name=" + name + ", age=" + age+ ", className=" + className + "]";}}

View Code

beans.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"default-autowire="byName"><bean id="abstractPeople" class="com.cy.entity.People" abstract="true"><property name="className" value="高三(1)班"></property><property name="age" value="18"></property></bean><bean id="zhangsan" parent="abstractPeople"><property name="id" value="1"></property><property name="name" value="张三"></property></bean><bean id="lisi" parent="abstractPeople"><property name="id" value="2"></property><property name="name" value="李四"></property><property name="age" value="20"></property></bean>
</beans>

测试代码:

@Beforepublic void setUp() throws Exception {ac=new ClassPathXmlApplicationContext("beans.xml");}@Testpublic void test() {People zhangsan = (People) ac.getBean("zhangsan");System.out.println(zhangsan); People lisi = (People) ac.getBean("lisi");System.out.println(lisi); }

View Code

2)依赖:

spring中加载bean的方式默认是按照bean配置的顺序加载的;

例如,查看zhangsan之前,必须要有权限,要先获取权限;

People.java:

package com.cy.entity;public class People {private int id;private String name;private int age;private String className;public People(){System.out.println("People初始化..");}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getClassName() {return className;}public void setClassName(String className) {this.className = className;}@Overridepublic String toString() {return "People [id=" + id + ", name=" + name + ", age=" + age+ ", className=" + className + "]";}}

View Code

com.cy.service.Authority:

package com.cy.service;public class Authority {public Authority(){System.out.println("获取权限..");}
}

View Code

beans.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"default-autowire="byName"><bean id="abstractPeople" class="com.cy.entity.People" abstract="true"><property name="className" value="高三(1)班"></property><property name="age" value="18"></property></bean><bean id="zhangsan" parent="abstractPeople"><property name="id" value="1"></property><property name="name" value="张三"></property></bean><bean id="lisi" parent="abstractPeople" depends-on="authority"><property name="id" value="2"></property><property name="name" value="李四"></property><property name="age" value="20"></property></bean><bean id="authority" class="com.cy.service.Authority"></bean>
</beans>

测试代码:

@Testpublic void test() {People zhangsan = (People) ac.getBean("zhangsan");System.out.println(zhangsan); People lisi = (People) ac.getBean("lisi");System.out.println(lisi); }

View Code

配置了depend on属性之后,加载lisi这个bean必须要先加载authority这个bean,所以bean的加载顺序变了,打印如下:

3)引用:

就是这样子:

<bean id="lisi" parent="abstractPeople"><property name="id" value="2"></property><property name="name" value="李四"></property><property name="age" value="20"></property><property name="dog" ref="dog"></property></bean>

二、bean作用范围:

默认是单例的:

<bean id="dog" class="com.java1234.entity.Dog" scope="singleton">
  <property name="name" value="jack"></property>
</bean>

多例的配置:

<bean id="dog" class="com.java1234.entity.Dog" scope="prototype">
  <property name="name" value="jack"></property>
</bean>

转载于:https://www.cnblogs.com/tenWood/p/6760005.html

峰Spring4学习(5)bean之间的关系和bean的作用范围相关推荐

  1. XML配置里的Bean自动装配与Bean之间的关系

    需要在<bean>的autowire属性里指定自动装配的模式 byType(根据类型自动装配) byName(根据名称自动装配) constructor(通过构造器自动装配) 名字须与属性 ...

  2. React学习:组件之间的关系、参数传递-学习笔记

    文章目录 React学习:组件之间的关系.参数传递-学习笔记 父到子传递参数 子-父 父-孙 兄弟组件传参 React学习:组件之间的关系.参数传递-学习笔记 父到子传递参数 <!DOCTYPE ...

  3. IOC之bean之间的关系讲解

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文主要讲了Spring中Bean之间的关系,分为继承.依赖和引用三个类型.文章中都分别有例子 ...

  4. 人工智能、机器学习、深度学习及三者之间的关系

    导读:什么是机器学习,什么是人工智能,什么是深度学习,这些名词概念我们一直有听说,但是也很容易混淆 这是小编的其他文章,希望对大家有所帮助,点击即可阅读 人工智能常用的十大算法    人工智能数学基础 ...

  5. spring--(14)利用注解建立bean与bean之间的关系

    2019独角兽企业重金招聘Python工程师标准>>> xml配置文件 <!-- 扫描com.test.annotation包下所有的类 --><context:c ...

  6. 《Java 核心技术卷1 第10版》学习笔记------ 类之间的关系

    在类之间, 最常见的关系有 •依赖 (" uses-a") •聚合(" has-a") •继承(" is-a") 依赖( dependenc ...

  7. Hibernate学习-14:实体之间的关系及其配置,级联操作

    1.实体之间有三种关系: * 一对多: * 一个用户,生成多个订单,每一个订单只能属于一个用户. * 建表原则: * 在多的一方创建一个字段,作为外键,指向一的一方的主键. * 多对多: * 一个学生 ...

  8. 6.Spring学习笔记_Bean之间的关系 (by尚硅谷_佟刚)

    一.继承 Bean 配置 Spring 允许继承 bean 的配置, 被继承的 bean 称为父 bean. 继承这个父 Bean 的 Bean 称为子 Bean 子 Bean 从父 Bean 中继承 ...

  9. GNN 的发展过程和一些理论(谱图表示学习 等)之间的关系

    来源均指这个理论的提出者或者讲解的论文&&书籍 1. 谱图理论(Spectral Graph Theory)是将图论与线性代数相结合的理论 来源:Spectral Graph Theo ...

最新文章

  1. Package name must have at least two identifiers 解决办法
  2. 顺时针打印3*3矩阵
  3. 利用GAN实现QR Code超分辨率的研究
  4. 木马爱修改的常见注册表项及其功能
  5. Simulink之变压器漏抗对整流电路的影响
  6. Linux lsof命令使用小结
  7. 我的MYSQL学习心得(三) 查看字段长度
  8. 数学与泛型编程:高效编程的奥秘pdf_Java 泛型与类型擦除
  9. 离散数学课后习题答案 左孝凌版
  10. 系统集成项目管理工程师-历年真题分析与解答 Android版
  11. python 汉诺塔问题_Python汉诺塔问题
  12. 51单片机C语言延时函数怎么定义和使用
  13. PuTTY用户手册(一)
  14. win10系统安装loadrunner11提示“为了对电脑进行保护,已经阻止此应用”的解决方案
  15. inurl:faq.php?action=,什么是财富等级 | 帮助 | 酷狗直播 | 就是歌手多
  16. 讯飞2021年营收183亿:同比增41% 净利为15.56亿
  17. Web前端零基础入门HTML5+CSS3基础教程——了解前端
  18. 神棍节移动电商显头角
  19. Aliyun ECS 配置
  20. openGL glColor3f函数颜色

热门文章

  1. tts文字转语音_Android文字转语音(TTS)
  2. C++基础知识(二)命名空间
  3. Java基础之字符串详细比较
  4. Aoite 系列(01) - 比 Dapper 更好用的 ORM
  5. matlab的findpeak 极点查找
  6. Windows10搭建PHP7开发环境
  7. 沈志勇-百度大数据引擎与分析预测
  8. aix 在线软件包安装 字符集 mysql安装
  9. Notes for Linux Administration Handbook (1) : Booting and Shutting Down
  10. Leetcode 1218.最长定差子序列