Spring学习笔记——装配Bean的三种方式

本文详细介绍了Spring中装配Bean的三种方法:自动装配、通过XML文件装配和通过Java代码装配。从面向接口编程的角度出发,讨论了如何在不同场景下选择合适的装配方式,并给出了具体的代码示例和测试结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bean的装配

什么是装配?
装配(wiring)就是创建应用对象之间协作关系的行为。
在Spring中有三种装配Bean的方式
第一种是在XML文件中进行显式设置
第二种是在Java代码中进行显式配置
第三种是自动装配和隐式的Bean发现机制
自动装配
Spring中实现自动化装配Bean:
组件扫描(component scanning):Spring自动扫描应用上下文中所创建的Bean。
自动装配(auto wiring):Spring自动满足Bean之间的依赖。
  1. 首先我们需要创建一个可以被发现的Bean(为了后期的可扩展,使用面向接口编程)
package com.ww.component;
/**
 * 定义为一个接口 定义可以对Music进行的操作
 * @author WW
 */
public interface Music {
	void play();
}
----------------------------------------------------------------------------
package com.ww.component;
import org.springframework.stereotype.Component;
/**
 * Music接口的实现类 面向接口编程
 * @author WW
 */
@Component("musicImpl")
public class MusicImpl implements Music{
	@Override
	public void play() {
		System.out.println("播放电音");
	}
}
@Component注解 org.springframework.stereotype.Component
这个注解表明这个类要成为一个组件类,并且Spring要为这个类创建Bean。
Spring应用上下文中所有的Bean都会给定一个ID,如果没有明确指定ID,Spring将会以这个注解的类名首字母小写之后的名字成为Bean的ID,如果需要自定义就可将自定义的ID传递给注解@Component(“自定义的Bean的ID名”)。
注解@Named(“自定义的Bean的ID名”) javax.inject.Named 也可以达到这个功能但是不推荐。
  1. Spring的自动扫描默认是不启动的,所以我们需要通过一个Config配置类来达到启用扫描的目的。
package com.ww.component;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
 * 组件扫描默认是不启用的,想要启用需要显式配置一下Spring
 * 使得Spring去寻找带Component注解的类并且创建Bean
 * @author WW
 */
@Configuration
@ComponentScan
public class MP3Config {
}
@Configuration注解 org.springframework.context.annotation.ComponentScan
定义Spring的配置类
@ComponentScan注解 org.springframework.context.annotation.Configuration
没有特别配置的情况下ComponentScan默认扫描与配置类处于相同位置的包和该包下的子包如果发现有@Component注解的类就会在Spring中自动为其创建一个Bean;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值