spring自动装配

spring自动装配

spring自动装配是自动配置各个SpringBean对象依赖的方法,通过springIoC容器spring会在应用上下文中为某个bean寻找其依赖的bean。
通过两个操作完成自动装配,让程序员配置步骤减少:

  1. 组件扫描(component scanning):spring会自动发现应用上下文中所创建的bean;
  2. 自动装配(autowiring):spring自动满足bean之间的依赖,也就是我们说的IoC/DI;

xml的bean中配置autowrie属性

byName

根据名称去查找spring容器中与之对应的id名称,被注入的属性的set后面的字段名必须与被查找的ID相同,否则注入失败
即方法中为 setAddress();则容器中必须要有一个ID=“address”的才能注入成功。
若set方法为:setAddressssssssssss()则ID=“addressssssssssss”就能注入成功。与被注入的属性名无关。(在实际开发过程中,命名必须规范)

byType

根据属性的类型去查找spring容器中与之对应的class,且该类型的bean有且只能有一个,否则注入失败。即使用前提:同一类型的对象,在spring容器中唯一。

注解配置@Autowired

  • @Autowired是按类型自动转配的,不支持id匹配。
  • 需要导入 spring-aop的包。

在Spring配置中引入context文件头并开启注解:

<context:annotation-config/>

并在Spring配置上配上类的基本信息。
在java类中需要被注入的属性上配置@Autowired注解。
此时该属性不需要set方法。

@Autowired(required=false):
true:(默认值)被注入的属性必须存在,否则报错
false:被注入的属性可以为null,即可以没有

注解@Qualifier

  • @Autowired是根据类型自动装配的,加上@Qualifier则可以根据byName的方式自动装配
  • @Qualifier不能单独使用。

注解@Resource

  • @Resource如有指定的name属性,先按该属性进行byName方式查找装配;
  • 其次再进行默认的byName方式进行装配;
  • 如果以上都不成功,则按byType的方式自动装配。
  • 都不成功,则报异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值