`
忘忧鸟
  • 浏览: 145018 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Bean注入方式3:使用注解装配属性(@Resource)

阅读更多

bean的注入方式有3种:


第一种:使用构造器注入
第二钟:使用属性setter方法注入
第三种:使用Field注入(用于注解方式)

下面我们使用注解的方式完成bean的注入

在java代码中使用@Autowired或@Resource注解方式进行装配,这两个注解的区别是:@Autowired 默认按类型装配,@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。

@Autowired 
 private PersonDao personDao;//用于字段上
 @Autowired
 public void setOrderDao(OrderDao orderDao) {//用于属性的setter方法上
 this.orderDao = orderDao;
 }

 @Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
@Autowired @Qualifier("personDaoBean")
private PersonDao personDao;

@Resource注解和@Autowired一样,也可以标注在字段或属性的setter方法上,但它默认按名称装配。名称可以通过@Resource的name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。
@Resource(name=“personDaoBean”)
private PersonDao personDao;//用于字段上

注意:如果没有指定name属性,并且按照默认的名称仍然找不到依赖对象时, @Resource注解会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了。

步骤:

(1).修改beans.xml

在java代码中使用@Autowired或@Resource注解方式进行装配。但我们需要在xml配置文件中配置以下信息:

<beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmlns:context="http://www.springframework.org/schema/context"   xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> 
<context:annotation-config/> 
</beans> 

 
这个配置隐式注册了多个对注释进行解析处理的处理器:AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,PersistenceAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor
注: @Resource注解在spring安装目录的lib\j2ee\common-annotations.jar

<context:annotation-config/> 必不可少

(2) 使用@Resource来 注释我们在beans.xml种声明的bean, @Autowired,前者是jdk的api,后者是spring的api,使用前者可以不依赖spring的特性,我们也可以给 属性PersionDao 加上set方法,然后使用@Resource来注释这个set方法,一可以有同样的效果

分享到:
评论

相关推荐

    用@Resource注解完成属性装配

    综上所述,`@Resource`注解是Spring框架中实现依赖注入的一种方式,通过基于bean名字的策略,使得我们能够更灵活地管理对象间的依赖关系。理解并熟练运用这一注解,有助于构建更加健壮和可维护的Spring应用。在实际...

    day38 17-Spring的Bean的属性注入:注解方式

    本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中的注解。在Spring 2.5版本之后,引入了基于注解的配置,这使得我们可以直接在类或方法上使用注解来声明...

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

    在实际应用中,通常推荐使用`@Autowired`,因为它提供了更强大的自动装配能力,包括基于类型、基于 Qualifier、基于父接口等多维度的注入方式。而`@Resource`更适合那些需要基于bean名称注入的场景,或者当你希望...

    1.@Resource是按名称进行注入的,属于java自带的。@Autowired是按类型进行注入的,属于Spring。.pdf

    如果存在多个相同类型的bean,可以通过`@Qualifier`注解指定特定的bean,或者通过`required`属性设置为`false`来允许不注入任何bean。 除了基于类型匹配外,`@Autowired`还支持基于方法参数的自动装配,以及配合`@...

    通过@Resource注解实现属性装配代码详解

    通过@Resource注解实现属性装配代码详解是 Spring 框架中的一种依赖注入方式。依赖注入是指在应用程序中,某个组件需要使用其他组件或对象时,通过容器来提供这些对象的过程。 Spring 框架提供了多种依赖注入方式,...

    编码剖析@Resource注解的实现原理

    3. **名称解析**:如果`@Resource`注解包含了`name`属性,Spring会直接使用这个名称查找bean。否则,它会使用字段或方法的名称。在找不到匹配的bean时,Spring会抛出异常。 4. **依赖注入**:一旦找到匹配的bean,...

    spring框架的@Resource和@Component 程序和文档

    在实际开发中,Spring提供了多种组合和扩展这些注解的方式,例如使用`@Qualifier`来进一步指定注入的Bean,或者使用`@Configuration`和`@Bean`来手动配置Bean。这使得Spring框架能够灵活地管理和装配复杂的依赖关系...

    spring注解注入示例详解.pdf

    @Autowired是Spring提供的注解,它可以实现自动装配,开发者可以通过此注解自动注入Bean的依赖。Autowired注解可以用在成员变量、setter方法以及构造函数上。当Spring容器启动时,它会自动查找并注入匹配的Bean。 @...

    Spring应用注解完成属性装配

    在Spring框架中,属性装配是将配置文件中的属性值注入到Bean对象中,使得对象能够根据配置信息正确地运行。Spring提供了多种方式进行属性装配,包括XML配置、基于注解的配置以及自动装配。本篇文章主要关注的是使用...

    Spring In Action 使用@Autowired 和@ Resource 自动装配Bean

    在Spring框架中,`@Autowired`和`@Resource`都是用于自动装配Bean的重要注解,它们简化了依赖注入的过程,使得代码更加简洁、易于维护。本文将深入探讨这两个注解的使用、区别以及如何在实际开发中应用它们。 首先...

    详解Spring依赖注入:@Autowired,@Resource和@Inject区别与实现原理

    Spring 依赖注入:@Autowired,@Resource 和@Inject 区别与实现原理 Spring 依赖注入是指在应用程序中将对象之间的依赖关系自动装配的过程。Spring 框架提供了多种依赖注入方式,包括 @Autowired、@Resource 和@...

    Spring注解@Resource和@Autowired.doc

    Spring 框架中提供了两个重要的注解,分别是@Resource 和@Autowired,它们都是用于 bean 的自动装配的。了解这两个注解的区别和使用场景是非常重要的。 首先,@Autowired 是 Spring 提供的注解,需要导入 org....

    Spring注解注入属性

    这意味着在使用`@Resource`时,你可以选择通过`name`属性显式指定bean的名称,也可以省略此属性,让Spring自动按类型装配。相比于`@Autowired`,`@Resource`提供了更灵活的依赖查找策略。 #### 三、`@Qualifier`的...

    spring使用resource注解的demo

    总结起来,这个"spring使用resource注解的demo"旨在演示如何利用`@Resource`注解进行bean的自动装配,以及与`@Autowired`的区别。通过分析`test008`中的文件,我们可以学习如何在实际项目中应用这些概念,以实现更...

    详解Spring注解--@Autowired、@Resource和@Service

    Spring注解详解 -- @Autowired、@Resource和@Service ...@Autowired、@Resource和@Service都是Spring框架中最常用的注解,它们可以帮助我们解决依赖注入问题,减少配置文件的体积和复杂度,提高开发效率和代码可读性。

    基于java的企业级应用开发:Bean的装配方式.ppt

    例如,在基于注解的装配中,我们可以在DAO实现类上使用`@Repository`注解,Service实现类上使用`@Service`注解,然后在需要注入的属性或构造函数上使用`@Autowired`或`@Resource`进行装配。 ```java @Repository(...

    AOP中的注解自动装配通知

    而注解自动装配是其中的一种方式,它允许开发者使用注解(如@Autowired、@Resource等)在类或方法级别声明依赖关系,而无需在XML配置文件中指定。这大大简化了配置,提高了开发效率。 **具体实现和使用** 1. **@...

    【Java面试】@Resource 和 @Autowired 的区别.doc

    在使用 @Autowired 注解时,如果在 Spring IOC 容器里面存在多个相同类型的 Bean 实例,那么 Spring 启动的时候,会提示一个错误,大概意思原本只能注入一个单实例 Bean,但是在 IOC 容器里面却发现有多个,导致注入...

    Spring依赖注入——java项目中使用spring注解方式进行注入.rar

    2. 注解注入:在需要注入依赖的类中,使用`@Autowired`、`@Qualifier`、`@Resource`或`@Inject`等注解标记字段或方法。 3. 配置扫描:在Spring配置文件中,使用`&lt;context:component-scan&gt;`标签指定需要扫描的包,使...

    4Spring自动装配——annotation resource方式

    在Spring框架中,自动装配(Auto-Wiring)是一种简化依赖注入(Dependency Injection,DI)配置的方式,它允许Spring容器自动管理Bean之间的依赖关系。本文将深入探讨如何通过注解(Annotation)和`@Resource`来实现...

Global site tag (gtag.js) - Google Analytics