第二章 装配Bean

本文详细介绍了Spring中三种主要的Bean装配机制:自动化装配,包括组件扫描和自动装配;通过Java代码装配;以及通过XML装配。自动化装配推荐使用,特别是组件扫描和@Autowired注解。在需要显式配置时,JavaConfig优于XML配置,因为它更加类型安全且利于重构。

spring提供三种主要的装配机制

1.隐式的bean发现机制和自动装配。
2.在Java中进行显式配置。
3.在XML中进行显式配置。

1.自动化装配bean(开发中常用,极力推荐)

Spring从两个角度来实现自动化装配:

a.组件扫描(component scanning):Spring会自动发现应用上下文
中所创建的bean。
b.自动装配(autowiring):Spring自动满足bean之间的依赖。

a.组件扫描(component scanning)

组件扫描默认是不启用的。我们还需要显式配置一下Spring,
从而命令它去寻找带有@Component注解的类,并为其创建bean。

1.@ComponentScan注解启用了组件扫描(这种方式不常用)
在这里插入图片描述

2.通过XML启用组件扫描(这种方式常用,推荐使用)
在这里插入图片描述
Spring应用上下文中所有的bean都会给定一个ID。在前面的例子中,
尽管我们没有明确地为SgtPeppersbean设置ID,但Spring会根据类
名为其指定一个ID。具体来讲,这个bean所给定的ID
为sgtPeppers,也就是将类名的第一个字母变为小写。

如果想为这个bean设置不同的ID,你所要做的就是将期望的ID作为值
传递给@Component注解。比如说,如果想将这个bean标识
为lonelyHeartsClub,那么你需要将SgtPeppers类的
@Component注解配置为如下所示:
在这里插入图片描述
另外不建议使用@Name代替@Component。

b.自动装配(autowiring)

自动装配就是让Spring自动满足bean依赖的一种方法,在
满足依赖的过程中,会在Spring应用上下文中寻找匹配某个bean需求
的其他bean。为了声明要进行自动装配,我们可以借助Spring的
@Autowired注解。
程序清单2.6 通过自动装配,将一个CompactDisc注入到CDPlayer
之中
在这里插入图片描述

尽管在很多场景下通过组件扫描和自动装配实现Spring的自动化配置
是更为推荐的方式,但有时候自动化配置的方案行不通,因此需要明
确配置Spring。比如说,你想要将第三方库中的组件装配到你的应用
中,在这种情况下,是没有办法在它的类上添加@Component和
@Autowired注解的,因此就不能使用自动化装配的方案了。
在这种情况下,你必须要采用显式装配的方式。在进行显式配置的时
候,有两种可选方案:Java和XML。

2.通过Java代码装配bean

在进行显式配置时,JavaConfig是更好的方案,因为它更为强大、类型安全并且对重构友好。

a.创建配置类

在这里插入图片描述
创建JavaConfig类的关键在于为其添加@Configuration注
解,@Configuration注解表明这个类是一个配置类。

b.声明简单的bean

要在JavaConfig中声明bean,我们需要编写一个方法,这个方法会创
建所需类型的实例,然后给这个方法添加@Bean注解。
在这里插入图片描述

3.通过XML装配bean

a.创建XML配置规范

要创建一个XML文件,并且要以元素为根。
在这里插入图片描述

b.声明一个简单的bean

在这里插入图片描述

总结

我同时建议尽可能使用自动化配置,以避免显式配置所带来的维护成
本。但是,如果你确实需要显式配置Spring的话,应该优先选择基于
Java的配置,它比基于XML的配置更加强大、类型安全并且易于重
构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值