1. @Resource和@Autowired有什么区别?
-
来源不同
@Resource是Jave EE(Java Platform, Enterprise Edition)规范定义的注解,位于javax.annotation包中,不仅可以用于Spring环境,还可以用于其他Java EE容器。
@Autowired是Spring框架定义的注解,位于org.springframework.beans.factory.annotation包中,主要用于Spring环境中
-
注入方式不同
@Resource默认按名称注入,如果在Spring容器找不到对应名称的Bean,则按照byType进行注入。
@Autowired默认按照byType的方式进行注入。如果有多个类型相同的Bean,可以结合@Qualifier使用指定具体的Bean名称。
-
代码示例
//使用@Resource @Resource(name = "myBean") //这里如果不写name的值,默认就是变量名 private MyBean myBean; //使用@Autowired @Autowired @Qualifier("myBean") private MyBean myBean;