@Inject和@Autowired的区别

简介: @Inject和@Autowired的区别

使用@Autowired和@Inject都可以完成属性的注入,区别在于它们的源和使用场景。

@Autowired是Spring特有的注解,源自于Spring框架,用于自动装配bean时进行依赖注入。在使用@Autowired时,可以基于类型或者按名字注入一个bean。例如:

public class UserService {
@Autowired
private UserDao userDao;
}
@Inject源自Java EE6规范,是一个标准的依赖注入注解,用于将容器中的依赖注入到Java类中,其使用与@Autowired大致相同。例如:

public class UserService {
@Inject
private UserDao userDao;
}
在实际使用中,@Inject可以和Spring框架一起使用,这种方式可以加强应用程序的可移植性。具体来说,使用JSR-330注解应用程序可以更加容易地在其他Java EE容器中运行。

另外一个区别是,@Inject注解提供的功能更加广泛,例如它可以被用于一些Java EE容器或者CDI容器中。

因此,如果你需要在应用程序中使用依赖注入的标准化注解,并且想让应用程序具备更高的可移植性,那么你可以使用@Inject,而如果你希望在Spring框架中使用依赖注入,那么你可以选择@Autowired。

相关文章
|
负载均衡 Java 微服务
OpenFeign原来是这么基于Ribbon来实现负载均衡的
大家好,我是三友~~ 前面我已经剖析了OpenFeign的动态代理生成原理和Ribbon的运行原理,这篇文章来继续剖析SpringCloud组件原理,来看一看OpenFeign是如何基于Ribbon来实现负载均衡的,两组件是如何协同工作的。
OpenFeign原来是这么基于Ribbon来实现负载均衡的
|
存储 安全 Java
|
JSON Java 应用服务中间件
HttpServletRequest核心方法以及获取请求参数
HttpServletRequest核心方法以及获取请求参数
2301 0
|
NoSQL Redis
Redis 之 WRONGTYPE Operation against a key holding the wrong kind of value【bug解决】
Redis 之 WRONGTYPE Operation against a key holding the wrong kind of value【bug解决】
11297 0
|
程序员 Linux Ruby
Mac安装并使用telnet命令操作
Mac安装并使用telnet命令操作
16769 1
Mac安装并使用telnet命令操作
|
11月前
|
安全
ConcurrentHashMap原如何保证的线程安全?
JDK1.7:使用分段锁,将一个Map分为了16个段,每个段都是一个小的hashmap,每次操作只对其中一个段加锁 JDK1.8:采用CAS+Synchronized保证线程安全,每次插入数据时判断在当前数组下标是否是第一次插入,是就通过CAS方式插入,然后判断f.hash是否=-1,是的话就说明其他线程正在进行扩容,当前线程也会参与扩容;删除方法用了synchronized修饰,保证并发下移除元素安全
261 2
|
消息中间件 Java 对象存储
数据一致性挑战:Spring Cloud与Netflix OSS下的分布式事务管理
数据一致性挑战:Spring Cloud与Netflix OSS下的分布式事务管理
184 2
|
11月前
|
消息中间件 存储 Kafka
RocketMQ 工作原理图解,看这篇就够了!
本文详细解析了 RocketMQ 的核心架构、消息领域模型、关键特性和应用场景,帮助深入理解消息中间件的工作原理。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
RocketMQ 工作原理图解,看这篇就够了!
|
存储 负载均衡 数据管理
分区和分片
分区和分片
509 5
|
XML Java 数据格式
Spring Cloud全解析:注册中心之zookeeper注册中心
使用ZooKeeper作为Spring Cloud的注册中心无需单独部署服务器,直接利用ZooKeeper服务端功能。项目通过`spring-cloud-starter-zookeeper-discovery`依赖实现服务注册与发现。配置文件指定连接地址,如`localhost:2181`。启动应用后,服务自动注册到ZooKeeper的`/services`路径下,形成临时节点,包含服务实例信息。
709 3