当前位置: 首页 > news >正文

spring学习系列

Spring_三种方式的依赖注入

    • 1.第一种,set方式,property
    • 2.构造器注入(构造方法)
    • 3.p命名空间注入
    • 4、注入各种数据类型

//老师类
public class Teacher {
	private String name;
	private int age;
}
//课程类
public class Course {
	private String courseName;
	private int courseHour;
	private Teacher teacher;
	
	public String getCourseName() {
		return courseName;
	}
	public int getCourseHour() {
		return courseHour;
	}
	public Teacher getTeacher() {
		return teacher;
	}
}

teacher属性依赖自Teacher类

创建bean对象

1.第一种,set方式,property

<bean id="teacher" class="Teacher类路径">
	<property name="name" value="zs"></property>	
	<property name="age" value="23"></property>	
</bean>

<bean id="course" class="Course类路径">
	<property name="courseName" value="java"></property>	
	<property name="courseHour" value="3"></property>	
	<property name="teacher" ref="Teacher"></property>	
</bean>

在这里插入图片描述

通过代码理解依赖注入
在这里插入图片描述

验证set方式的注入:
在这里插入图片描述
执行:
在这里插入图片描述
底层怎么通过courseName找到setCourseName()?通过courseName拼接setCourseName(),然后在course类里面去找,用的反射技术。
在这里插入图片描述

2.构造器注入(构造方法)

建两个类的构造方法
在这里插入图片描述
在这里插入图片描述

<constructor-arg></constructor-arg>

在这里插入图片描述

在这里插入图片描述
上面的构造方法的顺序要保持一致
解决方案一:index
在这里插入图片描述
解决方案二:指定参数名
在这里插入图片描述
解决方案三:指定类型,前提是构造方法的参数类型都不一样
在这里插入图片描述
也可以都写
在这里插入图片描述

3.p命名空间注入

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

多个有参构造
在这里插入图片描述
现在赋值33,是给哪一个呢?
在这里插入图片描述
默认将“33”当成字符串
在这里插入图片描述
所以赋值给了name

现在指定type
在这里插入图片描述
在这里插入图片描述
现在是给age赋值,但是打印的是name的信息,name没有赋值,所以打印的是null,
在这里插入图片描述

三种方式的总结:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、注入各种数据类型

在这里插入图片描述

通过spring容器给各个集合赋值

在这里插入图片描述
toString()方法:
在这里插入图片描述
set方式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
执行结果:
在这里插入图片描述
本来是一个数组,array,现在用list形式给它赋值:
在这里插入图片描述
在这里插入图片描述
set使用list的形式去写:
在这里插入图片描述
在这里插入图片描述
建议对号入座

相关文章:

  • 国外网站怎么做推广/拓客公司联系方式
  • 网站备案期间做什么/长春seo顾问
  • 雄安做网站优化/关键词歌曲歌词
  • 上海做网站的公司哪个好/百度搜索广告怎么投放
  • 如果让你建设一个网站/宿州百度seo排名软件
  • 文章网站的一级二级怎么做/长尾关键词查询工具
  • Pytorch模型自定义数据集训练流程
  • 云原生技术学习笔记(基础版)
  • nohup + 命令实现后台不挂断地运行程序
  • 贪心算法专题
  • Android项目Gadle统一依赖管理
  • 水声功率放大器模块在圆柱壳结构声源辐射研究中的应用
  • uefi和legacy的区别对比
  • windows安装VMware最新版本(VMware Workstation 17.0 Pro)详细教程
  • 亚马逊云科技助力游戏上云学习心得-运行篇
  • LeetCode 334. 递增的三元子序列(C++)
  • VTK-vtkSelectPolyDataFilter
  • CSS选择器整理学习(上)