Spring中Bean显式装配和自动装配

何为装配向bean中注入依赖项的过程即为装配,Spring中的装配大体有两种类型,一种就是显示的指定依赖项,另一种是通过一些规则自动的注入依赖项。具体的讲,显示指定依赖项是直接指定依赖项的名称,非常明显和确定,所以称之为显示装配。而根据规则自动注入依赖项,是指由Spring容器自动的将符合指定类型或指定名称的依赖项注入到bean的属性中,这种装配称为自动装配。显而易见的是,由于自动装配无须显示指定依赖项,所以更加的简单快速,目前应用的也是越来越多。由于装配非常的重要,涵盖的内容也是Spring的核心
摘要由CSDN通过智能技术生成

何为装配

向bean中注入依赖项的过程即为装配,Spring中的装配大体有两种类型,一种就是显示的指定依赖项,另一种是通过一些规则自动的注入依赖项。

具体的讲,显示指定依赖项是直接指定依赖项的名称,非常明显和确定,所以称之为显示装配。而根据规则自动注入依赖项,是指由Spring容器自动的将符合指定类型或指定名称的依赖项注入到bean的属性中,这种装配称为自动装配

显而易见的是,由于自动装配无须显示指定依赖项,所以更加的简单快速,目前应用的也是越来越多。

由于装配非常的重要,涵盖的内容也是Spring的核心技巧,所以本篇我们先介绍下如何在xml配置中进行显示、自动装配。

显示装配实例

显示装配就是显示出来,让大家看到,明明白白的指定要装配的依赖项,此处举个实例。既然大过年的,我们就搞个晚会,过年要开开心心的,我们把唱歌跳舞的都请过来。

package org.maoge.xmlassemble;
//歌手类
public class Singer {
   
	private String name;
	public String getName() {
   
		return name;
	}
	public void setName(String name) {
   
		this.name = name;
	}
}
package org.maoge.xmlassemble;
//舞者类
public class Dancer {
   
	private String name;
	public String getName() {
   
		return name;
	}
	public void setName(String name) {
   
		this.name = name;
	}
}

歌手唱歌、舞者跳舞都得需要一个舞台啊,我们来一个舞台类,这个舞台可以容纳歌手和舞者表演。

package org.maoge.xmlassemble;
//舞台类
public class Stage {
   
	//歌手
	private Singer singer;
	//舞者
	private Dancer dancer;
	public Singer getSinger() {
   
		return singer;
	}
	public void setSinger(Singer singer) {
   
		this.singer = singer;
	}
	public Dancer getDancer() {
   
		return dancer;
	}
	public void setDancer(Dancer dancer) {
   
		this.dancer = dancer;
	}
}

然后我们通过xml配置文件,显示指定要装配的bean对象,歌手的话我们请刀郎吧,那个歌真是唱出了西北的苍凉,特别喜欢他的《冲动的惩罚》和《喀什噶尔胡杨》,带劲!
在这里插入图片描述
舞者我们请刘迦吧,今年真是特别喜欢他,那精气神,太棒了。
在这里插入图片描述
OK,看下面的配置中,注意当为state对象的属性singer和dancer注入依赖项时,使用ref显示的指定了bean的id,所以这是非常明确的装配,所以叫显示装配

<?xml version="1.0" encoding="UTF-8"?><!-- spring.xml文件 -->
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans.xsd">
	<!-- 请来了歌手刀郎 -->
	<bean id="daolang" class="org.maoge.xmlassemble.Singer">
		<!-- 直接将"刀郎"注入到name属性 --</
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Springbean自动装配有几种方。一种是通过ByType自动装配,即Spring自动在容器上下文查找和自己对象属性类型相同的bean,并将其注入到属性。需要注意的是,所有的bean的class必须唯一,并且这个bean需要和自动注入的属性保持一致。可以在配置文件使用autowire="byType"来实现这种自动装配。\[1\] 另一种方是使用注解实现自动装配。可以在bean的属性上使用@Autowired注解,Spring自动在容器上下文查找和属性类型相同的bean,并将其注入到属性。需要在配置文件加入context约束,即在配置文件的根元素添加context命名空间的声明。\[2\]\[3\] 总结起来,Springbean自动装配可以通过ByType自动装配和使用注解实现自动装配两种方来实现。 #### 引用[.reference_title] - *1* [SpringBean自动装配](https://blog.csdn.net/weixin_44107140/article/details/119154162)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [springbean自动装配(详细)](https://blog.csdn.net/qijing19991210/article/details/119712328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值