目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7094.6k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(608)
赞(0)

八、DI的两种方式

IoC是由IoC容器帮助实例化Bean,并且在IoC容器内部注入关联属性(对象)的过程

在上面演示的都是如何实例化Bean,下面演示的是如果给Bean注入属性。也就是说在讲解IoC/DI的另一半功能。

在前面讲解DI时,官方文档明确说明了DI有两种方式。官网说明如下:

image-20230315164824083

翻译过来,就是下图效果:

Page-1(5)

1. 构造注入

构造注入要求必须在Bean中提供有参构造方法(无参数最好也提供上,这个位置不用。但是其他位置如果没有通过构造注入,默认是调用无参构造)。

1.1 检查Bean类中是否有有参构造方法

检查com.bjsxt.pojo.People是否有有参构造方法,并且注意构造方法参数列表类型和参数顺序。

1.2 配置bean

在配置文件applicationContext.xml中可以通过<bean>的子标签<constructor-arg>设置构造方法中一个参数的值。

解释说明:

constructor-arg 里面有5个属性,这5个属性分为2类。

(1)用来确定给哪个属性进行赋值

name:参数名称

index:参数索引。从0开始算起。

type:参数类型。8大基本数据类型可以直接写关键字。其他类型需要写类型的全限定路径。

这三个属性如果只需要用到一个就能精确的告诉Spring,要设置的构造方法参数是哪个可以使用一个。如果无法精确到某个构造方法参数,可以多个一起结合使用。

(2)设置属性的值

value:简单数据类型直接设置。Spring会自动进行类型转换。

ref:需要引用另一个bean的id。也就是说这个参数是一个类类型,且这个类的对象也被Spring容器管理。

下面代码使用了type进行确认到底给构造方法哪个参数赋值。也可以尝试使用其他的属性来确认参数。

1.3 编写测试类并观察控制台运行结果

控制台输出结果包含了配置的值

image-20230315180127088

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2