我浏览了SpringSource上的一些博客,其中一个博客的作者使用了@Inject,我想他也可以使用@Autowired。
下面是这段代码:
@注入私有CustomerOrderService
我不确定@Inject和@Autowired之间的区别,如果有人解释他们的区别,在什么情况下使用哪个,我会很感激的。
我浏览了SpringSource上的一些博客,其中一个博客的作者使用了@Inject,我想他也可以使用@Autowired。
下面是这段代码:
@注入私有CustomerOrderService
我不确定@Inject和@Autowired之间的区别,如果有人解释他们的区别,在什么情况下使用哪个,我会很感激的。
当前回答
最好一直使用@Inject。因为它是java配置方法(由sun提供),这使得我们的应用程序对框架不可知。所以如果你spring你的类也可以工作。
如果你使用@Autowired,它将只对spring起作用,因为@Autowired是spring提供的注释。
其他回答
@Inject没有'required'属性
从Spring 3.0开始,Spring提供了对JSR-330依赖注入注释(@Inject, @Named, @Singleton)的支持。
Spring文档中有一个关于它们的单独章节,包括与它们的Spring等价物的比较。
@Autowired和@Inject之间的关键区别(在阅读Spring Docs时注意到)是,@Autowired有'required'属性,而@Inject没有'required'属性。
@Inject注释是JSR-330注释集合之一。这有按类型匹配,按限定符匹配,按名称匹配执行路径。 这些执行路径对setter和字段注入都有效。@Autowired注释的行为与@Inject注释相同。唯一的区别是@Autowired注释是Spring框架的一部分。@Autowired注释也有上面的执行路径。所以我推荐@Autowired来回答你的问题。
最好一直使用@Inject。因为它是java配置方法(由sun提供),这使得我们的应用程序对框架不可知。所以如果你spring你的类也可以工作。
如果你使用@Autowired,它将只对spring起作用,因为@Autowired是spring提供的注释。