首页 热点 业界 科技快讯 数码 电子消费 通信 前沿动态 电商

详解Spring Bean的集合注入和自动装配

2022-06-11 09:29:42 来源 : 软件开发网

目录

一、Spring Bean 集合注入

集合常用标签

案例

二、Spring Bean自动装配

什么是自动装配

自动装配的方式

案例

注意点

一、Spring Bean 集合注入

在【Spring学习笔记(三)】已经讲了怎么注入基本数据类型和引用数据类型,接下来介绍如何注入比较特殊的数据类型——集合

集合常用标签

集合注入,用法也很简单,只需要在 Bean 标签下的 元素中添加以下集合的标签,再通过value或者ref进行属性注入

标签说明
用于注入 list 集合,允许重复
用于注入 set集合,不允许重复
用于注入 key-value 的map集合, key 和 value 可以是任意类型
用于注入 key-value 的properties集合,key 和 value 必须是是字符串类型

注意:List的底层也是通过数组实现的,所以标签是可以混用

案例

1.创建一个Collection类和Dept类,代码如下

/*Collection类*/public class Collection { //1.数组 private int[] array; //2.list集合 private List list; //3。set集合 private Set set; //4.map集合 private Map map; //5.properties集合 private Properties properties; //打印各个集合 public void fmt() { System.out.println("打印array:" + Arrays.toString(array)); System.out.println("打印List:" + list); System.out.println("打印Set:" + set); System.out.println("打印Map:" + map); System.out.println("打印Properties:" + properties); } -----省略setter方法----- }/*Dept类*/public class Dept { //部门编号 private int deptNo; //部门名称 private String deptName; @Override public String toString() { return "Dept{" + "deptNo=" + deptNo + ", deptName="" + deptName + "\"" + "}"; } -----省略setter方法----- }

2.编写spring配置文件

114514 114514 114514 root 123456

3.编写运行程序

public static void main(String[] args) { //获取IoC容器 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //从容器中获取对象 Collection collection = context.getBean("collection", Collection.class); //调用方法打印各个集合 collection.fmt();}

运行结果如下

二、Spring Bean自动装配

Spring 在 Bean 与 Bean 之间建立依赖关系的行为称为 “装配”

Spring Bean 属性注入 前面学习了,在 spring配置文件中通过 中的 ref属性,手动维护 Bean 与 Bean 之间的依赖关系的,即手动装配

手动装配图

什么是自动装配

如果容器中Bean很多,依赖关系又非常复杂,此时手动装配就略显吃力且繁琐了,所以Spring 框架为我们提供了 “自动装配”功能,提高开发效率。

Spring 自动装配:Spring IoC容器根据自动装配方式,为指定的 Bean 从应用上下文(AppplicationContext 容器)自动查找并自动注入它所依赖的 Bean。

自动装配的方式

Spring 默认不支持自动装配的。使用自动装配,则需要对 Spring XML 配置文件中 元素的 autowire属性进行设置,此时就不需要ref属性了。

属性值说明
byName按名称自动装配。 Bean 的 id 或 name 属性值与这个对象属性的名称相同
byType按类型自动装配。 Bean 的 class 属性值与这个对象属性的类型相匹配
constructor按构造器参数自动装配。
default默认采用上一级元素 设置的自动装配方式(default-autowire)进行装配。
no默认值,表示不使用自动装配。
案例

1.创建员工类Employee和部门类Dept,添加各个成员变量的setter方法

/*员工类Employee*/public class Employee { //员工编号 private String empNo; //员工姓名 private String empName; //部门信息 private Dept dept; //各个属性的setter方法 public void setEmpNo(int empNo) { this.empNo = empNo; } public void setEmpName(String empName) { this.empName = empName; } public void setDept(Dept dept) { this.dept = dept; } ----省略toString方法------ }/*部门类Dept*/public class Dept { //部门编号 private String deptNo; //部门名称 private String deptName; //各个属性的setter方法 public void setDeptNo(int deptNo) { this.deptNo = deptNo; } public void setDeptName(String deptName) { this.deptName = deptName; } ----省略toString方法------}

2.编写spring配置文件

3.编写运行程序

public static void main(String[] args) { //获取IoC容器 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //从容器中获取对象 Employee employee = context.getBean("employee", Employee.class); System.out.println(employee);}

结果如下图

注意点

自动装配用于引用类型依赖注入,不能对简单类型进行操作

使用按类型装配时(byType)必须保障容器中相同类型的bean唯一,推荐使用

使用按名称装配时(byName)必须保障容器中具有指定名称的bean,因变量名与配置耦合,不推荐使用

自动装配优先级低于setter注入与构造器注入,同时出现时自动装配配置失效

以上就是详解Spring Bean的集合注入和自动装配的详细内容,更多关于Spring Bean集合注入 自动装配的资料请关注软件开发网其它相关文章!

标签: 自动装配 配置文件 运行程序

相关文章

最近更新
观焦点:超萌相机 2023-03-01 12:29:37
海南百货网 2023-03-01 12:13:44
焦点热讯:宜点充 2023-02-28 10:10:16
天天关注:小铺CEO 2023-02-28 10:07:13
【世界聚看点】KaFit 2023-02-28 09:31:37
葱天下 2023-02-28 09:17:03
渔界竞钓 2023-02-28 08:15:29
焦点快看:鲸奇视频 2023-02-28 06:30:37
环球热议:萝小逗 2023-02-27 23:25:49
简讯:小码公交 2023-02-27 23:16:12
彼岸花 2023-02-27 22:32:52
时时夺宝 2023-02-27 21:37:50
天天动态:袜之源 2023-02-27 21:29:50
天天资讯:AI空气 2023-02-27 20:19:46
世界时讯:绘读 2023-02-27 20:19:41
看点:一元得购 2023-02-27 19:26:28