基于注解配置bean-Resource
2025-4-20
| 2025-4-20
Words 482Read Time 2 min
type
status
date
slug
summary
tags
category
icon
password
@Resource有两个属性是比较重要的,分别是name和type,name属性解析为bean的名字,type解析为bean的类型,所以如果使用name属性,则使用byName的自动注入策略,而使用type属性则使用byType自动注入策略。

根据name属性装配

使用name属性配置,那么属性名称就没有意义了。

根据type属性装配

但是如果指定的名称不存在,但是属性名存在也可以注入成功(但课程中没有讲)

@Resource

如果什么也不写,只有@Resource,那么匹配的策略是,先使用byName进行匹配,再使用byType属性进行配置,如果都不成功,就会报错。
此时容器中没有userService400,所以会按照类型注入,但是此时现在容器中有三个此类型的对象:userService,userService200,userService300
所以结果是
notion image
image-20230212164904057
改正,可以指定其中一个UserService即可

结论

  1. 所以,在注入的时候尽量使用规范的属性名,因为ioc输入的时候,id名是按照类型的首字母小写注入的,对应属性名也就是驼峰命名法。
  1. @AutoWired官方不推荐使用,如果两个都可以使用,优先使用@Resource

此注解不推荐使用

notion image
image-20230212165629443
基于注解配置bean-总结基于注解配置bean-AutoWired
Loading...