Spring自动注入之@Autowired、@Resource、@Inject
相同点:
三者都支持对spring bean的自动注入
不同点:
①Autowired按照类型进行注入( Bean bean = applicationContext.getBean(Bean.class);),如果找到多个类型相同的组件,再将属性的名字作为组件的id去容器中查找。
可以使用@Qualifier指定需要装配的组件id,而不是通过属性名。还可以使用@Primary默认使用首选的bean。如果容器中没有找到bean,会报错,可以使用@Autowired(required=false)避免。
②Resource先通过名字找,如果找不到通过类型找,不支持@Primary和required=false。
③需要导入javax.inject包,不支持required=false。