目录
相同点
@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;
// ...
}