三个注解都是用于属性的自动装配
@Autowired注解是spirng的自动装配属性的注解
1、可以结合spirng的@Qualifier、@Primary注解使用,功能很强大
2、@Autowired注解可以指定required属性,以指定该属性是否必须
@Resource注解是javax JSR250规范之一
1、@Resource中的name属性可以指定装配的属性的id
2、不支持spring的@Primary注解
3、没有像@Autowired注解一样,指定required属性
@Inject注解是javax JSR330规范之一(JSR330是Jcp给出的官方标准反向依赖注入规范。Java大部分反向依赖注入的工具或者框架目前基本上都满足JSR330规范、例如spring、guice以及Dagger。)
使用@Inject注解首先需要导入依赖
<dependency><groupId>javax.inject</groupId><artifactId>javax.inject</artifactId><version>1</version></dependency>
1、@Inject注解中不能指定任何属性,包括required
2、@Inject注解可以支持spirng的注解,可以和spring的注解联合使用,如:@Primary、@Qualifier