两者区别
@Resource
加载Bean
的时候首先按bean
的名称(name
)加载,如果为空,按Bean
的类型(type
)加载,如果名称和类型都不匹配,加载Bean
失败。@Autowired
加载Bean
的时候按Bean
的类型(type
)加载,**如果想要按名称(name
)加载,需要使用@Qualifier
注解。
简单举例
public interface BeanInterface
{
}
@Component(value = "beanA")
class BeanAImpl implements BeanInterface {
}
@Component(value = "beanB")
class BeanBImpl implements BeanInterface {
}
class BeanTest {
@Resource(name = "beanA")
private BeanInterface beanInterface1;
@Autowired @Qualifier(value = "beanB")
private BeanInterface beanInterface2;
}