Sping的三种注入方式

转载 2013年12月02日 12:04:28
spring的三种注入方式:


  1. 接口注入(不推荐
  2. getter,setter方式注入(比较常用
  3. 构造器注入(死的应用


关于getter和setter方式的注入
  •  autowire="defualt"
  •  autowire=“byName”
  •  autowire="bytype"
例如:有如下两个类需要注入
 1 package org.jia;
 2 
 3 public class Order {
 4     private String orderNum;
 5     @SuppressWarnings("unused")
 6     private OrderItem orderitem;
 7 
 8     public OrderItem getOrderitem() {
 9         return orderitem;
10     }
11 
12     public void setOrderitem(OrderItem orderitem) {
13         this.orderitem = orderitem;
14     }
15 
16     public String getOrderNum() {
17         return orderNum;
18     }
19 
20     public void setOrderNum(String orderNum) {
21         this.orderNum = orderNum;
22     }
23     
24 }
25 package org.jia;
26 
27 public class OrderItem {
28     private String orderdec;
29 
30     public String getOrderdec() {
31         return orderdec;
32     }
33 
34     public void setOrderdec(String orderdec) {
35         this.orderdec = orderdec;
36     }
37 }
38 
getter&&setter方式第一种注入:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="orderItem" class="org.jia.OrderItem">
        <property name="orderdec" value="item00001"></property>
    </bean>
    <bean id="order" class="org.jia.Order" >
        <!-----注入变量 名字必须与类中的名字一样------->
        <property name="orderNum" value="order000007"></property>
         <!--注入对象 名字为orderitem,所属的类的应用id为orderItem-->
        <property name="orderitem" ref="orderItem"></property>
    
    --></bean>


</beans>
getter&&setter方式第二种注入: byName
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!--此时的id就必须与Order.java中所定义的OrderItem的对象名称一样了,不然就会找不到-->
    <bean id="orderitem" class="org.jia.OrderItem">
        <property name="orderdec" value="item00001"></property>
    </bean>
    <bean id="order" class="org.jia.Order" autowire="byName">
        <property name="orderNum" value="order000007"></property>
    </bean>
</beans>
getter&&setter方式第三种注入:byType
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!--按照byType注入则就与id没有关系,可以随便定义id !!!但是不能出现多个此类的id-->
    <bean id="orderitdfadafaem" class="org.jia.OrderItem">
        <property name="orderdec" value="item00001"></property>
    </bean>
    <bean id="order" class="org.jia.Order" autowire="byType">
        <property name="orderNum" value="order000007"></property>
    </bean>
</beans>


关于构造器的注入:

 autowire="constructor"
需要在Order.java中加入一个构造器
public Order(OrderItem item ){ orderitem = item; }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="orderItem" class="org.jia.OrderItem">
        <property name="orderdec" value="item00001"></property>
    </bean>
    <bean id="order" class="org.jia.Order" autowire="constructor">
        <property name="orderNum" value="order000007"></property>
    </bean>
</beans>

Spring-三种依赖注入方式

三种依赖注入方式,即构造方法注入(constructor injection),setter方法注入(setter injection)以及接口注入(interface injection). 构造方...
  • wojiaohuangyu
  • wojiaohuangyu
  • 2016年06月29日 21:48
  • 5685

Sping三种注入方式

Sping三种注入方式   Sping三种注入方式                                                                        (...
  • u012149354
  • u012149354
  • 2015年01月04日 15:02
  • 309

spring三种注入方式比较

三种注入方式比较 接口注入: 接口注入模式因为具备侵入性,它要求组件必须与特定的接口相关联,因此并不被看好,实际使用有限。 Setter 注入: 对于习惯了传统 javabean 开发的程序员...
  • xiaolingzinia
  • xiaolingzinia
  • 2013年11月29日 12:23
  • 1317

深入浅出spring IOC中三种依赖注入方式

深入浅出spring IOC中三种依赖注入方式 spring的核心思想是IOC和AOP,IOC-控制反转,是一个重要的面向对象编程的法则来消减计算机程序的耦合问题,控制反转一般分为两种类型,依赖...
  • u011637069
  • u011637069
  • 2016年07月19日 19:53
  • 30189

Spring学习笔记(6)---------IoC的三种注入方式

接口注入(不推荐)构造器注入(死的应用)getter,setter方式注入(比较常用) Type1 接口注入 我们常常借助接口来将调用者与实现者分离。如: public class ClassA...
  • u011225629
  • u011225629
  • 2015年05月02日 09:07
  • 1822

IOC三种注入方法解释

IOC三种注入方法解释 IoC模式最权威的总结和解释,应该是Martin Fowler的那篇文章“Inversion of Control Containers and the Depe...
  • xiaoxing1521025
  • xiaoxing1521025
  • 2013年04月24日 18:21
  • 1807

angularJs三种依赖注入方式与minify

依赖注入(饭来伸手,一来张口)DI,Dependency Injectio AngularJs使用module“名字/对象”注册表来作为容器,实现DI。 依赖注解有三种方式,(数组标注、添...
  • hao5743
  • hao5743
  • 2016年06月15日 15:58
  • 1634

Spring常用的三种注入方式

Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:构造方法注入,setter注入,基于注解的注入。构造方法注入先简单看一下测试项目的结构,用maven构建的,四个包:e...
  • a909301740
  • a909301740
  • 2017年10月28日 21:45
  • 514

Spring三种注入属性的方式

Spring三种方法注入属性 1.        准备工作: 1)        新建Dao包,Service包 2)        在每个包内新建对应的接口,以及impl包 Us...
  • qq_28174471
  • qq_28174471
  • 2016年09月05日 18:25
  • 1799

依赖注入的三种方式

依赖注入:为IOC别名,依赖注入是IOC的实现方式,IOC本质是将对象的创建由程序转移到容器,依赖注入为实现这一目标的方式。(1)构造方法注入:即被注入对象可以通过在其构造方法中声明依赖对象的参数列表...
  • iycynna_123
  • iycynna_123
  • 2016年09月02日 15:07
  • 1712
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Sping的三种注入方式
举报原因:
原因补充:

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