Autowired 和 Resource 注解

一、前沿

Spring  中我们经常使用 Autowired 或者 Resource 注解来进行依赖注入,它们都可以写在字段或者该字段的setter方法上,但它们之间是有区别的:

Autowired:默认是按照类型装配注入的,如果想按照名称来装配注入,要结合 @Qualifier 一起使用默认情况下必须要求依赖的对象存在,如果要允许 null 值,可以设置它的 required 属性为 false,如:@Autowired(required = false)

Resource:默认是按照名称装配注入的,只有当找不到与名称匹配的 bean 时才会按照类型来装配注入。如果没有指定name,当注解在字段上时,默认取字段名进行按照名称查找,如果注解写在 setter 上,默认取属性名进行装配。但是需要注意的是,如果name属性一旦指定,则只能按照名称进行装配注入

Resource 注解是由 J2EE 提供的,故减少系统对 Spring 的依赖,建议使用 Resource 注解

 Autowired 注解是由 Spring 提供的

下面通过demo示例分别介绍 Autowired 和 Resource

二、Autowired 注解

下面来看一下使用的demo示例

2.1 按照类型自动装配注入依赖

配置文件如下:

使用的代码如下(按照类型自动装配注入):

2.2 按照名称自动装配注入依赖

按照名称自动装配注入依赖必须要结合 @Qualifier 使用,具体代码如下:

三、Resource 注解

下面来看一下demo示例:

3.1、按照默认名称来装配注入

3.2、按照指定的name名称来装配注入

四、总结

不管是哪种方式自动装配依赖注入,按照名称类型来装配时,即 @Autowired 结合 @Qualifier 使用时 或者 @Resource 指定name使用时,注解 @Service上一定要写上 Service 的名字

猜你喜欢

转载自blog.csdn.net/ywlmsm1224811/article/details/103196990