Rac*_*hel 659 java spring dependency-injection inject autowired
我正在浏览一些关于SpringSource的博客,在一个博客中,作者正在使用@Inject,我想他也可以使用@Autowired.
这是一段代码:
@Inject private CustomerOrderService customerOrderService;
我不确定它们之间的区别,@Inject并且@Autowired如果有人解释了它们之间的差异以及在什么情况下使用哪一个,我将不胜感激?
pap*_*pap 690
假设你在这里指的是javax.inject.Inject注释.@Inject是Java EE 6(JSR-299)中引入的Java CDI(上下文和依赖注入)标准的一部分,阅读更多内容.Spring选择支持使用@Inject他们自己的@Autowired注释同义词.
所以,回答你的问题,@Autowired是Spring自己的(遗留)注释.@Inject是一种名为CDI的新Java技术的一部分,它定义了类似于Spring的依赖注入标准.在Spring应用程序中,这两个注释的工作方式与Spring决定支持除了自己的一些JSR-299注释相同.
nic*_*ild 155
这是一篇博客文章,比较@Resource,@Inject和@Autowired,并且似乎做了相当全面的工作.
从链接:
除了测试2和7之外,配置和结果是相同的.当我查看引擎盖时,我确定'@Autowired'和'@Inject'注释的行为相同.这两个注释都使用'AutowiredAnnotationBeanPostProcessor'来注入依赖项.'@Autowired'和'@Inject'可以互换使用来注入Spring bean.但是'@Resource'注释使用'CommonAnnotationBeanPostProcessor'来注入依赖项.尽管他们使用不同的后处理器类,但它们的行为几乎完全相同.以下是其执行路径的摘要.
作者引用的测试2和7分别是"按字段名称注入"和"尝试使用错误限定符解析bean".
结论应该为您提供所需的所有信息.
小智 34
为了处理没有布线的情况,可以使用@Autowired required属性设置为的bean false.
但是在使用时@Inject,Provider接口与bean一起工作,这意味着bean不是直接注入,而是与Provider一起注入.
Luc*_*cky 21
关键的区别(阅读时注意春季文档)之间@Autowired,并@Inject是,@Autowired有"必要"的属性,而@Inject没有"必要"的属性.
小智 14
最好一直使用@Inject.因为它是java配置方法(由sun提供),它使我们的应用程序与框架无关.所以,如果你春天,你的课程也会奏效.
如果你使用@Autowired它只适用于spring,因为@Autowired是spring提供的注释.
Ale*_*kov 12
@Autowired 注释在Spring框架中定义.
@Injectannotation是标准注释,它在标准的"Java依赖注入"(JSR-330)中定义.Spring(自3.0版本起)支持依赖注入的通用模型,该模型在标准JSR-330中定义.(Google Guice框架和Picocontainer框架也支持此模型).
与@Inject可喷射的参考的实施 Provider接口,其允许注射推迟引用.
注释@Inject和@Autowired- 几乎是完全类比.除@Autowired注释外,@Inject注释还可用于自动绑定属性,方法和构造函数.
与@Autowired注释相比,@Inject注释没有required属性.因此,如果找不到依赖项 - 将抛出异常.
在结合特性的澄清方面也存在差异.如果注射成分的选择存在歧义,@Named则应添加限定符.在类似的情况下,@Autowired注释将添加@Qualifier限定符(JSR-330定义它自己的@Qualifier注释,并通过此限定符注释@Named定义).
小智 10
除上述内容外:
@Autowired.| 归档时间: |
|
| 查看次数: |
281056 次 |
| 最近记录: |