Spring6 DI 依赖注入--Bean属性赋值
Spring6基于XML实现Bean 管理(属性赋值)
IOC和DI有什么区别:DI是IOC中的具体实现,DI表示依赖注入或注入属性,注入属性要在创建对象的基础之上完成
依赖注入方法
bean属性赋值方法只有一种:构造器注入(之所以这么说是为了便于记忆),我们知道构造器有两种: 无参构造,有参构造。这两种方法最终都是要调用set方法完成。
有参构造属性赋值
<!--有参构造注入属性 name-->
<bean id="" class="">
<!--属性:可以根据有参构造函数的参数名(name),
值:value 或ref(外部BEAN)引用
-->
<constructor-arg name="" value=""></constructor-arg>
<constructor-arg name="" value=""></constructor-arg>
</bean>
<!-- 使用构造方法注入属性 index -->
<bean id="" class="">
<!--
属性:也可以根据使用参数索引 (index)
值:value 或 ref(外部bean)引用
-->
<constructor-arg index="0" ref=""/>
<constructor-arg index="1" value=""/>
</bean>
无参构造属性赋值
无参构造+set方法实现,实体类中要有属性的set 方法和无无参构造函数
<!--set方法注入属性-->
<bean id="" class="">
<!--使用property完成属性注入
name:类里面属性名称
value:向属性注入的值 或ref 外部bean引用
-->
<property name="" value=""></property>
<property name="" value=""></property>
</bean>
属性赋值--特殊值
<bean id="" class="">
<!--设置属性为空-->
<property name="">
<null/>
</property>
<!-- 属性值包含特殊符号 把带特殊符号内容写到CDATA
-->
<property name="">
<value><![CDATA[任意值]]></value>
</property>
</bean>
在给属性赋值时,如果对象的属性A类型为对象B,那么可以在A的bean中对B的属性赋值,
<bean id='b' class=''>
<property name='c' value=''>
</bean> <bean id='a' class=''>
<property name='mm' value=''>
<property name='nn' ref='b'>
<!-- 给属性的属性赋值 叫做级联赋值-->
<property name='b.c' value=''>
</bean>
Bean标签的其它属性
scope属性值
在spring配置文件bean标签里面有属性scope用于设置单实例还是多实例。
singleton,表示单实例对象: 加载spring配置文件就会创建单实例对象
prototype,表示多实例对象 :在调用getBean方法创建多实例对象。
autowire自动装配
<bean id="" class ="" autowire="">
</bean>
byName 根据属性名称进行注入,bean的id要和类的属性名称一致
byType 根据类型(class)注入,此时同一个类的bean定义要保证唯一
Spring6 DI 依赖注入--Bean属性赋值的更多相关文章
- [转载]Spring下IOC容器和DI(依赖注入) @Bean及@Autowired
Spring下IOC容器和DI(依赖注入) @Bean及@Autowired自动装配 bean是什么 bean在spring中可以理解为一个对象.理解这个对象需要换一种角度,即可将spring看做一门 ...
- 依赖注入Bean属性
一.Bean属性依赖注入 对于类成员变量,注入方式有三种 •构造函数注入 •属性setter方法注入 •接口注入 Spring支持前两种 1.构造函数 属性注入 使用构造方法注入,在Spring配置文 ...
- 依赖注入Bean属性——手动装配Bean
一.构造方法注入 其中,可以根据不同的参数列表调用不同的重载的构造方法: 其中,基本数据类型没有包,引用类型都有包路径,基本类型对应封装类: 二.通过property标签调用类的set方法注入 三.通 ...
- 初识Spring框架实现IOC和DI(依赖注入)
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的, IoC是 ...
- Spring详解(三)------DI依赖注入
上一篇博客我们主要讲解了IOC控制反转,也就是说IOC 让程序员不在关注怎么去创建对象,而是关注与对象创建之后的操作,把对象的创建.初始化.销毁等工作交给spring容器来做.那么创建对象的时候,有可 ...
- Spring:(二)DI依赖注入方式
DI 依赖注入 DI(Dependency Injection)依赖注入,说简单一点就将类里面的属性在创建类的过程中给属性赋值,即将对象依赖属性(简单值,集合,对象)通过配置设值给该对象. 属性注入的 ...
- JAVAWEB 一一 Spirng(框架,IOC控制反转,DI依赖注入)
jar包 applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <bea ...
- Spring-初识Spring框架-IOC控制反转(DI依赖注入)
---恢复内容开始--- IOC :控制反转 (DI:依赖注入)使用ioc模式开发 实体类必须有无参构造方法1.搭建Spring环境下载jarhttp://maven.springframework. ...
- Spring学习——DI(依赖注入)
IOC容器,处理对象依赖关系 IOC与DI: IOC :是一个容器,创建对象的容器 DI :在容器创建对象后,处理对象的依赖关系,也叫依赖注入! 方式1:通过set方法注入值 可以给普通属性.集合属性 ...
- 三大框架 之 Spring(IOC控制反转、DI依赖注入)
目录 常用词汇 left join与left outer join的区别 Struts2的标签库导入 Spring Spring概述 什么是Spring spring特点 下载 IOC 什么IOC 传 ...
随机推荐
- Halcon使用MeasurePos来实现检测边缘点
(1)为了提高性能,测量句柄只需要初始化一次: 参数:测量矩形的中心点行坐标,测量矩形中心的列坐标,测量矩形的角度,测量矩形的宽,测量矩形的高,待处理图像的宽,待处理图像的高,使用的算法,输出测量句柄 ...
- CSP-J2022 题解报告
\(CSP-J2022\) 题解报告 \(T1\) 乘方: 发现 \(2^{32}>10^9\),所以这个题只需要特判 \(a=1\) 的情况为 \(1\),其他直接枚举再判断即可. Code: ...
- Go语言核心36讲35
到目前为止,我们已经一起学习了Go语言标准库中最重要的那几个同步工具,这包括非常经典的互斥锁.读写锁.条件变量和原子操作,以及Go语言特有的几个同步工具: sync/atomic.Value: syn ...
- leetcode学习记录2.13
[13] 罗马数字转整数 import java.util.HashMap; import java.util.Map; /* * * [13] 罗马数字转整数 * * https://leetcod ...
- Spring Boot 多数据源配置
第一种方式: AbstractRoutingDataSource 1.1. 手动切换数据源 application.properties # Order # 如果用Druid作为数据源,应该用url属 ...
- 在Java Web中setContentType与setCharacterEncoding中设置字符编码格式的区别
在Java Web中setContentType与setCharacterEncoding中设置字符编码格式的区别 通用解释 setCharacterEncoding只是设置字符的编码方式 setCo ...
- Day22:多态详解
方法的多态 1.1什么是多态? 指一个对象在不同时刻拥有不同的形态. 例:猫 cat=new 猫(): 动物 animal=new 猫(): 多态建立的条件: 建立在继承的关系上: 有方法重写: ...
- Day29 Linux相关命令的使用
今日内容 基本概念 安装 基本命令 在linux上安装软件 jdk mysql jdk Nginx的安装 一.概述 1.Unix linux基于Unix,Unix由贝尔实验室在1969年开发 一开始由 ...
- Qwt开发笔记(二):Qwt基础框架介绍、折线图介绍、折线图Demo以及代码详解
前言 QWT开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,本系列旨在系统解说并 ...
- linux 删除influxdb的某条数据
1.进入服务器,输入: influx 进入influxdb 2.继续输入: show databases 显示所有的数据库名称 3.继续输入: use database 使用某一个数据库 ps:此处的 ...