峰Spring4学习(5)bean之间的关系和bean的作用范围
一、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的作用范围相关推荐
- XML配置里的Bean自动装配与Bean之间的关系
需要在<bean>的autowire属性里指定自动装配的模式 byType(根据类型自动装配) byName(根据名称自动装配) constructor(通过构造器自动装配) 名字须与属性 ...
- React学习:组件之间的关系、参数传递-学习笔记
文章目录 React学习:组件之间的关系.参数传递-学习笔记 父到子传递参数 子-父 父-孙 兄弟组件传参 React学习:组件之间的关系.参数传递-学习笔记 父到子传递参数 <!DOCTYPE ...
- IOC之bean之间的关系讲解
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文主要讲了Spring中Bean之间的关系,分为继承.依赖和引用三个类型.文章中都分别有例子 ...
- 人工智能、机器学习、深度学习及三者之间的关系
导读:什么是机器学习,什么是人工智能,什么是深度学习,这些名词概念我们一直有听说,但是也很容易混淆 这是小编的其他文章,希望对大家有所帮助,点击即可阅读 人工智能常用的十大算法 人工智能数学基础 ...
- spring--(14)利用注解建立bean与bean之间的关系
2019独角兽企业重金招聘Python工程师标准>>> xml配置文件 <!-- 扫描com.test.annotation包下所有的类 --><context:c ...
- 《Java 核心技术卷1 第10版》学习笔记------ 类之间的关系
在类之间, 最常见的关系有 •依赖 (" uses-a") •聚合(" has-a") •继承(" is-a") 依赖( dependenc ...
- Hibernate学习-14:实体之间的关系及其配置,级联操作
1.实体之间有三种关系: * 一对多: * 一个用户,生成多个订单,每一个订单只能属于一个用户. * 建表原则: * 在多的一方创建一个字段,作为外键,指向一的一方的主键. * 多对多: * 一个学生 ...
- 6.Spring学习笔记_Bean之间的关系 (by尚硅谷_佟刚)
一.继承 Bean 配置 Spring 允许继承 bean 的配置, 被继承的 bean 称为父 bean. 继承这个父 Bean 的 Bean 称为子 Bean 子 Bean 从父 Bean 中继承 ...
- GNN 的发展过程和一些理论(谱图表示学习 等)之间的关系
来源均指这个理论的提出者或者讲解的论文&&书籍 1. 谱图理论(Spectral Graph Theory)是将图论与线性代数相结合的理论 来源:Spectral Graph Theo ...
最新文章
- Package name must have at least two identifiers 解决办法
- 顺时针打印3*3矩阵
- 利用GAN实现QR Code超分辨率的研究
- 木马爱修改的常见注册表项及其功能
- Simulink之变压器漏抗对整流电路的影响
- Linux lsof命令使用小结
- 我的MYSQL学习心得(三) 查看字段长度
- 数学与泛型编程:高效编程的奥秘pdf_Java 泛型与类型擦除
- 离散数学课后习题答案 左孝凌版
- 系统集成项目管理工程师-历年真题分析与解答 Android版
- python 汉诺塔问题_Python汉诺塔问题
- 51单片机C语言延时函数怎么定义和使用
- PuTTY用户手册(一)
- win10系统安装loadrunner11提示“为了对电脑进行保护,已经阻止此应用”的解决方案
- inurl:faq.php?action=,什么是财富等级 | 帮助 | 酷狗直播 | 就是歌手多
- 讯飞2021年营收183亿:同比增41% 净利为15.56亿
- Web前端零基础入门HTML5+CSS3基础教程——了解前端
- 神棍节移动电商显头角
- Aliyun ECS 配置
- openGL glColor3f函数颜色
热门文章
- tts文字转语音_Android文字转语音(TTS)
- C++基础知识(二)命名空间
- Java基础之字符串详细比较
- Aoite 系列(01) - 比 Dapper 更好用的 ORM
- matlab的findpeak 极点查找
- Windows10搭建PHP7开发环境
- 沈志勇-百度大数据引擎与分析预测
- aix 在线软件包安装 字符集 mysql安装
- Notes for Linux Administration Handbook (1) : Booting and Shutting Down
- Leetcode 1218.最长定差子序列