0
点赞
收藏
分享

微信扫一扫

Spring高手之路-@Autowired和@Resource注解异同点

前行的跋涉者 2023-12-29 阅读 40

目录

相同点

不同点

1.来源不同。

2.包含的属性不同

3.匹配方式(装配顺序)不同。

​编辑

4.支持的注入对象类型不同

5.应用地方不同


相同点

@Autowired
private Bean beanA;
@Resource
private Bean beanB;

在Spring容器中这两个注解功能基本是等价的,都可以将bean注入到对应的字段中。

不同点

虽然功能上看起来基本相同还是存在区别的下面从几个不同方面分析

1.来源不同。

2.包含的属性不同

3.匹配方式(装配顺序)不同。

@Component
public class UserService {
    @Autowired
    @Qualifier("userRepository")//如果有多个同类型的Bean,可以使用@Qualifier注解指定具体的Bean
    private UserRepository userRepository;
    // ...
}

默认使用

@Component
public class UserService {
    @Resource//不指定任何属性
    private UserRepository userRepository;
    // ...
}

指定name

@Component
public class UserService {
    @Resource(name = "userRepository")//使用name属性指定具体的Bean
    private UserRepository userRepository;
    // ...
}

指定type

@Component
public class UserService {
    @Resource(type = UserRepository.class)//使用type属性指定Bean类型
    private UserRepository userRepository;
    // ...
}

指定name和type

@Component
public class UserService {
    @Resource(type = "UserRepository.class",name = "userRepository")//使用type属性指定Bean类型,name指定Bean名称
    private UserRepository userRepository;
    // ...
}

4.支持的注入对象类型不同

5.应用地方不同

举报

相关推荐

0 条评论