@Resurce和@Autowired的区别

@Resource@Autowired 是 Java 中常用的两个注解,用于自动装配依赖对象。它们的主要区别如下:

  1. 来源不同:

    @Resource 是 Java EE 提供的注解,属于 J2EE 的一部分,它由 JSR-250 规范定义。

    @Autowired 是 Spring 框架提供的注解,属于 Spring 的一部分,它通过使用反射来进行注入。

  2. 名称匹配方式不同:

    @Resource 可以通过 name 属性指定依赖对象的名称(可以是属性名或者指定的名称),或者根据类型进行匹配。

    @Autowired 默认通过类型进行匹配,如果存在多个同类型的对象,可以通过 @Qualifier 注解指定具体的名称。

  3. 兼容性不同:

    @Resource 是 JSR-250 规范定义的注解,支持 Java 标准,可以在 Java EE 应用程序中使用。

    @Autowired 是 Spring 框架提供的注解,支持 Spring IoC 容器,并且可以与其他 Spring 相关注解搭配使用。

  4. 使用范围不同:

    @Resource 可以用于字段、setter 方法和构造函数上。

    @Autowired 主要用于构造函数、setter 方法和字段上,支持更灵活的注入。

  5. 引入的包不同:

    @Resource 的包路径是 javax.annotation.Resource

    @Autowired 的包路是 org.springframework.beans.factory.annotation.Autowired

简而言之,@Resource 是 Java EE 提供的注解,而 @Autowired 是 Spring 提供的注解。它们在注入方式、兼容性和使用范围等方面略有区别。在 Spring 应用中,通常推荐使用 @Autowired 注解来实现依赖注入。

你可能感兴趣的:(SSM,spring,java)