@Inject 和 @Autowired 的区别
@Inject 和 @Autowired 注解都用于应用程序中的自动装配。
@Inject 注解是 Java CDI 的一部分,在 Java 6 中引入,而 @Autowired 注解是 Spring 框架的一部分。这两个注解都实现相同的目的,因此,我们可以在应用程序中使用其中任何一个。
| 序号 | 关键点 | @Inject | @Autowired |
|---|---|---|---|
| 1 | 基础 | 它是 Java CDI 的一部分 | 它是 Spring 框架的一部分 |
| 2 | 必需 | 它没有required属性 | 它有 required 属性 |
| 3 | 默认范围 | 自动装配 bean 的默认范围是单例 | 注入 bean 的默认范围是原型 |
| 4 | 歧义 | 如果 bean 注入存在歧义,则应在代码中添加 @Named 限定符。 | 如果 bean 注入存在歧义,则应在代码中添加 @Qualifier 限定符。 |
| 5 | 优势 | 它是 Java CDI 的一部分,因此它不依赖于任何 DI 框架。它使您的系统松散耦合。 | 它使您的应用程序与 Spring 框架紧密耦合。将来,如果您想迁移到另一个 DI 框架,则需要重新配置您的应用程序。 |
@Injection 注解示例
public class InjectionExample {
@Inject
private CarBean carbean;
}@Autowired 注解示例
public class AutowiredExample {
@Autowired
private CarBean carbean;
}
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP