`
zk_chs
  • 浏览: 214784 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Spring中@Autowire与@Resource的区别

 
阅读更多

在@Autowire使用时,默认使用by-Type的方式进行注入

而@Resource,默认使用by-Type的方式注入,但使用by-Name方式时,相比@Autowire较方便

public class SimpleMovieLister {  
  
  private MovieFinder movieFinder;  
  
  @Resource(name="myMovieFinder")  
  public void setMovieFinder(MovieFinder movieFinder) {  
      this.movieFinder = movieFinder;  
  }  
 
  @Autowire
  @Qualifer("myMovieFinder")
  public void setMovieFinder(MovieFinder movieFinder) {  
      this.movieFinder = movieFinder;  
  }  

} 

 

 

@Autowired applies to fields, constructors, and multi-argument methods, allowing for narrowing through qualifier annotations at the parameter level. By contrast, @Resource is supported only for fields and bean property setter methods with a single argument. As a consequence, stick with qualifiers if your injection target is a constructor or a multi-argument method.

 

@Autowire用于属性、构造器、多参数方法注入,可以通过@Qualifer变为by-Name方式

 

@Resource则支持属性、setter方法上的使用:如果名字没有明确指定,默认名从那个字段名或者方法名中推断出。如果是字段,就获取这个字段名;如果是setter方法,其获取bean的属性名。

 

所以,你在注入构造器与多参数方法时,请使用@Autowire与@Qualifer进行配合

分享到:
评论

相关推荐

    (转)Spring中@Autowired注解和@Resource注解的区别

    在阅读《Spring中Autowired和Resource的区别.docx》文档时,可以深入探讨这两个注解的内部实现原理,以及在实际项目中的最佳实践。通过源码分析,我们可以了解到Spring如何解析这些注解并执行依赖注入的过程,这有助...

    20 面试官,请不要再问我@Resource和@Autowire注解的区别了慕课专栏(1)1

    在面试中,理解`@Resource`和`@Autowired`的区别,以及它们的实现原理,也能展示出你对Spring框架的深入理解。 综上所述,`@Resource`注解在Spring中主要通过`CommonAnnotationBeanPostProcessor`进行处理,用于按...

    spring-autowire.zip

    当在某个字段或方法上添加了@Autowired,Spring容器会自动寻找合适的bean进行注入,而无需手动使用`@Resource`或`@Inject`来指定bean的名称。 在IDEA 2020中创建Spring项目并引入Spring Web依赖,我们可以创建几个...

    Spring-Reference_zh_CN(Spring中文参考手册)

    12.5.1. iBATIS 1.x和2.x的概览与区别 12.5.2. iBATIS SQL Maps 1.x 12.5.2.1. 创建SqlMap 12.5.2.2. 使用 SqlMapTemplate 和 SqlMapDaoSupport 12.5.3. iBATIS SQL Maps 2.x 12.5.3.1. 创建SqlMapClient 12.5.3.2....

    Spring自动装配的方式

    Spring自动装配的方式和举例、以及@Qualifier、@Autowire、@Resource的使用。

    3Spring使用annotation方式autowire

    本篇将详细探讨"3Spring使用annotation方式autowire"这一主题,包括注解驱动的自动装配(Autowiring)以及相关的源码分析。 ### 一、注解驱动的自动装配 自动装配是Spring框架的一个核心特性,它允许框架自动管理...

    autowire自动导入句柄

    在Spring框架中,`autowire`是一种自动装配bean依赖的方式,它极大地简化了bean之间的依赖注入过程。本文将深入探讨`autowire`自动导入句柄及其在实际开发中的应用。 ### 1. `autowire`简介 `autowire`是Spring...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Spring的Autowired自动装配(XML版本+Annotation版本+源码+解析)

    在上面的例子中,`@Autowired`注解告诉Spring框架,应该自动寻找与`myService`类型匹配的bean并注入。 3. 源码解析: @Autowired的工作原理涉及到了Spring的BeanFactory和ApplicationContext。当Spring容器启动时,...

    storm-spring-autowire:使storm支持spring的注入功能

    storm-spring-autowire 使storm支持spring的注入功能 由于storm的生命周期如下 1.在提交了一个topology之后(是在nimbus所在的机器么?), 创建spout/bolt实例(spout/bolt在storm中统称为component)并进行序列化. 2.将...

    如何完成spring的最小化XML配置

    - `byName`:Spring会尝试查找与Bean属性名称相匹配的Bean进行注入。 - `byType`:根据Bean的类型,Spring会寻找相同类型的Bean进行注入。 - `constructor`:基于构造函数参数的类型进行自动装配。 - `auto...

    strut2和spring整合

    Struts2 和 Spring 整合是为了在 Struts2 框架中利用 Spring 的依赖注入(Dependency Injection,DI)和管理bean的能力,从而提高应用程序的灵活性和可维护性。以下是整合过程中涉及的关键知识点: 1. **Struts2-...

    自动装配 AutoWire

    **自动装配(Autowired)是Spring框架中的一个重要特性,它允许我们自动将依赖注入到bean中,而无需显式地在配置文件中指定依赖关系。在本文中,我们将深入探讨Autowired的工作原理、使用方式以及它如何简化Java应用的...

    Spring 2.0 开发参考手册

    12.5.1. iBATIS 1.x和2.x的概览与区别 12.5.2. iBATIS SQL Maps 1.x 12.5.3. iBATIS SQL Maps 2.x 12.6. JPA 12.6.1. 在Spring环境中建立JPA 12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的JPA实现...

    spring ioc使用教程

    Spring 框架是 Java 后端开发中的核心组件,其IOC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)是两大核心特性。这些概念旨在提高代码的可测试性、可维护性和松耦合性。下面将详细讲解...

    Spring中XML配置文件的十二个最佳方法.doc

    例如,通过`autowire="byName"`或`autowire="byType"`,Spring会根据属性名或类型自动匹配依赖。然而,这种方式容易引发误导,因为当项目变得复杂时,自动绑定可能造成难以追踪的依赖关系。因此,推荐明确地定义bean...

    Spring2.5 自动扫描classpath

    标题中的“Spring2.5 自动扫描classpath”指的是Spring框架在2.5版本中引入的一项功能,即自动组件扫描(Auto-Component Scanning)。这项功能允许开发者无需在XML配置文件中显式声明bean,而是通过在类上添加特定...

    spring2.5 学习笔记

    - **自动装配(autowire)**:Spring可以自动匹配并注入bean,包括byName、byType等方式。 - **生命周期管理**:Spring提供了管理bean生命周期的方法,如初始化和销毁方法。 #### 使用注解配置Spring Spring 2.5...

    spring学习笔记

    如果希望Spring自动装配Bean,可以使用`autowire`属性,如`byName`、`byType`、`constructor`和`autodetect`,或者结合注解使用`@Autowired`和`@Resource`。`@Autowired`默认按照类型匹配,而`@Resource`则优先按照...

    Spring API

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

Global site tag (gtag.js) - Google Analytics