基于注解的依赖注入
基于注解的依赖注入
作用:等同于在<bean>
标签中写一个 <property>
标签
@Autowired
作用:自动按照类型注入,当使用注解注入属性时,set 方法可以省略。它只能注入其他 bean 类型。只要容器中有唯一的一个 bean 对象类型和要注入的变量类型匹配, 就可以注入成功;如果IOC容器中没有任何 bean 的类型和要注入的变量类型匹配,则报错;当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的 id,在 spring 容器查找,找到了也可以注入成功。找不到就报错。
出现位置:可以是变量上,也可以是方法上
细节:在使用注解注入时,set 方法就不是必须的了
@Qualifier
作用:在按照类型注入的基础上再按照名称注入,它在给类成员注入时不能单独使用,但是在给方法参数注入时可以。
属性:
value : 用于指定注入的 bean 的 id @Qualifier可以被用在单个构造器或者方法的参数上。当上下文有几个相同类型的bean, 使用@Autowired则无法区分要绑定的bean,此时可以使用@Qualifier来指定名称。
@Component
public class User{
@Autowired
@Qualifier("address1")
private Address address;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
@Resource
作用:直接按照 bean 的 id 注入,可以直接使用
属性: name : 用于指定 bean 的 id
等同于
@Autowired+@Qualifier
以上三个注入都只能注入其他 bean 类型的数据,而基本类型和 String 类型的数据无法使用上述注解实现。另外,集合类型的注入只能通过 xml 配置文件实现
@Value
作用:用于注入基本类型和 String 类型的数据
属性:
value : 用于指定数据的值,它可以使用 Spring 中 Spel (即spring的el表达式)
Spel 的写法:${表达式}
上次更新: 2024/03/29, 08:56:31