java - Spring Framework 中的@Inject 和@Autowired 有什么区别?在什么条件下使用哪一种?

标签 java spring dependency-injection autowired inject

我正在浏览一些关于 SpringSource 的博客,在其中一个博客中,作者使用的是 @Inject我想他也可以使用@Autowired .

这是一段代码:

@Inject private CustomerOrderService customerOrderService;

我不确定@Inject 之间的区别。和 @Autowired如果有人解释他们的区别以及在什么情况下使用哪一个,将不胜感激?

最佳答案

假设您在这里指的是 javax.inject.Inject注解。 @Inject 是 Java EE 6 (JSR-299) 中引入的 Java CDI (Contexts and Dependency Injection) 标准的一部分,read more . Spring 选择支持将 @Inject 注释与其自己的 @Autowired 注释同义地使用。

所以,回答你的问题,@Autowired 是 Spring 自己的注解。 @Inject 是称为 CDI 的 Java 技术的一部分,它定义了类似于 Spring 的依赖注入(inject)标准。在 Spring 应用程序中,这两个注解的工作方式与 Spring 决定支持一些 JSR-299 注解的方式相同。

关于java - Spring Framework 中的@Inject 和@Autowired 有什么区别?在什么条件下使用哪一种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142622/

相关文章:

java - 序列化draw2d LayeredPane

java - 如何让Java Swing应用程序在windows和linux中有一致的字体?

java - 无法解析 MVC View Spring MVC 3

javafx - 传递参数JavaFX FXML

java - Apache Camel Bean 中的动态 PropertyInjection

java - JUNG(Java 图): How to prevent Vertex- and Edge-Labels from overlapping?

java - 使用 JIRA 版本 3.12 创建 JIRA 票证

java - 如何判断ApplicationConfig.class是否带有自定义注解

SpringBeanAutowiringSupport 与 WebApplicationContextUtils

.net - Ninject - 拦截多重绑定(bind)解析