Spring 注解 Resource 与 Autowired 的区别

在使用 Spring 的自动的 Annotation 注解的时候经常会见到有两类的注解:@Resource 、@Autowired,在 Spring 里面自动的配置模式有两类:按照类型、按照名称。

@Autowired:
则表示按照类型进行自动注入,缺点:如果类型相同,则无法注入;@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个相同类型的bean时,就会抛出BeanCreationException异常
@Resource:
具备按照类型自动注入的特点,而后如果现在类型相同,则可以设置一个名称也就是说你使用 @Component、@Service 等注解设置自动扫描的时候可以设置一个名字,而这个名字就可以在 @Resource 中使用了。

SpringBoot 里面,因为其自动支持一些环境配置,所以如果使用的是 Autowired 那么如果配置了多个相同类型 的 Bean 的话,那么将无法进行准确的注入操作。那么必须使用 @Resource 完成。