- Spring 框架学习(五)---- 依赖注入
- 一、构造器注入
- 二、set注入【重要】
- 三、其他方式注入
- (1)导入约束
- (2)p命名注入
- (3)c命名注入
一、构造器注入
在前几节已经做过了详细的说明讲解,我们先跳过
二、set注入【重要】
依赖注入
-
依赖: bean对象的创建以及管理都依赖于Spring IOC容器
-
注入: bean对象中的所有属性,都有容器进行注入
在前面我们已经见识过了 普通类型注入和 bean注入的方式,那么对于复杂类型List、数组类型、Map、Set属性等怎么进行注入呢?
我们先提供一个包含各种类型的实体类
Student 类
package com.kuang.pojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
@Setter
@Getter
@ToString
public class Student {
private String name;
private Address address;
private String[] books;
private List hobbies;
private Map card;
private Set games;
private String wife;
private Properties info;
}
Student类中包含的 Address类
package com.kuang.pojo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class Address {
private String address;
}
(1)基本类型注入
(2)引用类型(bean)注入
(3)数组类型注入
红楼梦
水浒传
西游记
三国演义
property 嵌套 array标签 ,array标签中又 通过 value标签设置 数组中的值
(4)List类型注入
打篮球
弹吉他
踢足球
property 嵌套 list标签 ,list标签中又 通过 value标签设置 list中的值
(5)null 空值注入
property 嵌套 null标签,给指定属性设置为null
(6)Map 类型注入
property 嵌套 map标签 ,map标签中又 通过 entry标签设置 key、value中的值
(7)Set 类型注入
塞尔达
马里奥
property 嵌套 set标签 ,set标签中又 通过value标签设置set中的值
(8)Properties 类型注入
111
root
22222
property 嵌套 props标签 , props标签中又 通过prop标签设置值
查看注入之后的结果,正确拿到结果
三、其他方式注入
(1)导入约束
其他拓展的注入有p命名注入和c命名注入,但是不能直接使用都需要引入xml约束
p命名空间注入xml约束
xmlns:p="http://www.springframework.org/schema/p"
c命名空间xml约束
xmlns:c="http://www.springframework.org/schema/c"
p命名和c命名是对注入方式的一种格式化
-
p命名对应着 property 属性注入
-
c命名对应着 construct-arg 构造参数注入
(2)p命名注入
(3)c命名注入



