Spring 手工装配对象

原创 2011年01月08日 18:32:00

手工装配依赖对象,在这种方式中又有两种编程方式
1. 在xml配置文件中,通过在bean节点下配置,如

<bean id="orderDao" class="cn.itcast.service.OrderDao" />
<bean id="orderService" class="cn.itcast.service.OrderServiceBean">
    <constructor-arg index=“0” type=“java.lang.String” value=“xxx”/>//构造器注入
    <property name=“name” value=“zhao/>//属性setter方法注入

    <property name="orderDao" ref="orderDao"/>//关联orderDao
</bean>
2. 在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
导入spring.jar中就有了

 

在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属性,就只能按名称装配了。

Spring手工装配注入依赖对象

依赖注入分为手工装配和自动装配
  • lzm1340458776
  • lzm1340458776
  • 2014年06月12日 11:53
  • 2436

Spring - 装配Bean:即依赖注入

装配Bean:即依赖注入在Spring中,对象间的协作是通过IoC机制完成的。反向控制也叫依赖注入(Dependency Injection,DI),简单来说就是将JavaBean需要的对象通过配置文...
  • LeosHope
  • LeosHope
  • 2007年10月30日 22:15
  • 5354

spring手工装配 条件

spring依赖注入--手工装配—注解方式 2011-03-21 22:47 在java代码中使用@Autowired或@Resource注解方式进行装配的前提条件是。 ...
  • yeliping2011
  • yeliping2011
  • 2011年12月01日 16:23
  • 424

【Spring 核心】高级装配

高级装配用来适应开发和生产环境
  • dream361
  • dream361
  • 2017年02月20日 14:32
  • 523

【spring】1、三种装配bean的方式

【spring】1、三种装配bean的方式 创建应用对象之间协作关系的行为通常称为装配,这也是依赖注入(DI)的本质 spring有如下三种装配bean的方法 在XML中进行显式配置 在Ja...
  • u011719271
  • u011719271
  • 2016年12月14日 23:51
  • 3611

Spring的三种装配Bean的方式

Spring的三种装配Bean的方式   一.自动扫描+自动装配 适用情况:简单bean,初始化不需要基本bean之外的其他参数,无参构造函数或者仅需要其他bean,如果需要其他bean作为属性...
  • java_hxc_sz
  • java_hxc_sz
  • 2017年02月04日 16:43
  • 670

spring--装配bean

众所周知,spring最基本的功能就是用来管理bean,spring为我们提供了三种装配bean的方式: 1. XML显式配置 2. Java显式配置 3. 组件扫描和自...
  • xingtingshu
  • xingtingshu
  • 2016年08月20日 14:35
  • 740

spring用注解的方式实现属性装配

beans.xml:
  • xzf19901108
  • xzf19901108
  • 2012年07月29日 17:17
  • 940

注入依赖对象手工装配

依赖对象的注入分手工装配和自动装配两种方式,在不是很清楚工具的情况下,还是建议手工装配避免很多不必要的错误,而手工装配依赖对象的注入分两种情况: 1.使用bean.xml文件通过构造器或者sette...
  • u011249702
  • u011249702
  • 2016年03月25日 14:48
  • 328

spring 注入方式和自动装配介绍

spring四种依赖注入方式博客分类: spring平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管...
  • diwangerdai
  • diwangerdai
  • 2017年05月26日 17:46
  • 882
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring 手工装配对象
举报原因:
原因补充:

(最多只允许输入30个字)