在使用IDEA开发工具时候,每当我们使用注解@Aotuwired注解时候idea就会提示,而使用@Resource的时候就不会提示?
因为前者的注解是Spring提供的,它是特定IoC提供的特定注解,这就导致了应用与框架的强绑定,一旦换用了其他Ioc框架,则不能够支持注入的,而后者是JSR-250提供的,它是Java标准,我们使用的Ioc容器应当去兼容他。
首先前者根据单词词义是自动写入,就说明它是spring自动装配的对象,会根据type类型进行装配,如果发现多个bean,则又按照name方式进行匹配(如果又@Qualifer这个注解,则按照参数查找Bean),如果还有,则报出异常,
后者参数有7个,最常用name,type。具体装配流程,首先根据填写的参数进行装配,如果没有指定参数则首先会按照名称进行装配若没有则按照类型查找。
注解地方不同
@Autowired能够用在:构造器、方法、参数、成员变量和注解上,而@Resource能用在:类、成员变量和方法上。