为了账号安全,请及时绑定邮箱和手机立即绑定

在Spring Framework中@Inject和@Autowired有什么区别?

在Spring Framework中@Inject和@Autowired有什么区别?

holdtom 2019-12-07 13:46:28
我正在SpringSource上浏览一些博客,在其中一个博客中,作者正在使用@Inject,我想他也可以使用@Autowired。这是一段代码:@Inject private CustomerOrderService customerOrderService;我不知道之间的区别@Inject和@Autowired,如果有人解释他们的区别将不胜感激,什么情况下要使用哪一个?
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

假设这里是指javax.inject.Inject注释。@Inject是Java EE 6(JSR-299)中引入的Java CDI(上下文和依赖项注入)标准的一部分,更多内容。Spring选择支持@Inject与自己的@Autowired注释同义使用。


因此,回答您的问题@Autowired是Spring自己的注释。@Inject是Java新技术CDI的一部分,该技术定义了类似于Spring的依赖项注入标准。在Spring应用程序中,这两个注释的工作方式与Spring决定除了支持自己的某些JSR-299注释一样。


查看完整回答
反对 回复 2019-12-07
?
临摹微笑

TA贡献1982条经验 获得超2个赞

这是一篇比较@Resource,@Inject和的博客文章,@Autowired似乎做得很全面。


从链接:


除了测试2和7,配置和结果相同。当我深入研究时,我确定'@Autowired'和'@Inject'注释的行为相同。这两个注释都使用'AutowiredAnnotationBeanPostProcessor'注入依赖项。'@Autowired'和'@Inject'可以互换使用来注入Spring bean。但是,“ @ Resource”注释使用“ CommonAnnotationBeanPostProcessor”来注入依赖项。即使它们使用不同的后处理器类,它们的行为也几乎相同。以下是其执行路径的摘要。


作者引用的测试2和7分别是“按字段名注入”和“尝试使用错误的限定词来解析bean”。


结论将为您提供所需的所有信息。


查看完整回答
反对 回复 2019-12-07
  • 3 回答
  • 0 关注
  • 1283 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信