美文网首页
依赖注入的方式

依赖注入的方式

作者: 极客_Ls | 来源:发表于2019-02-15 16:04 被阅读0次
依赖注入:

依赖于某些方式给Bean的资源进行注入

Spring 支持三种依赖注入的方式
  1. 属性注入
  2. 构造器注入
  3. 工厂方法注入少用、不推荐

一. 属性注入:

  • 使用setter方法
laishuai.setAge(12);
  • 通过IOC的配置文件
<property name="name" value="LaiShuai"></property>
//或者通过
<property name="name">
    < value>value值</value>
</property>

二. 构造器注入:
在xml中:默认为构造器属性顺序进行注入,也可以用index对属性进行顺序标注,type指定数据类型

 //需要根据构造方法的属性顺序依次赋值
 <bean id="persion" class="com.laishuai.bean.Persion">
      <constructor-arg value="二狗子" ></constructor-arg>
      <constructor-arg value="22"></constructor-arg>
 </bean>

//也可以使用index指定属性的顺序,index从0开始
 <bean id="persion" class="com.laishuai.bean.Persion" >
      <constructor-arg value="二狗子" index=0></constructor-arg>
      <constructor-arg value="22"></constructor-arg>
 </bean>

//使用时间序列标志
 <bean id="persion" class="com.laishuai.bean.Persion">
      <constructor-arg value="二狗子" type=“java.lang.String”></constructor-arg>
      <constructor-arg value="22" type=int“”></constructor-arg>
 </bean>
字面值:
  • 可以用字符串表示的值,可以通过<value>元素标签或 value1属性进行注入
  • 基本数据类型及其封装类、String等类型都可以使用字面值注入的方式
  • 若字面值包含特殊字符,可以使<![ADATA]>把字面值包裹起来。
//只能使用value标签进行赋值,不能使用value属性
<bean id="persion" class="com.laishuai.bean.Persion">
        <property name="name">
            <value>陈二狗<![CDATA[?]]></value>
        </property>
        <property name="age">
            <value>22</value>
        </property>
    </bean>
引用Bean

省略getter()、setter()方法

package com.laishuai.bean;

public class Persion {
    public String name;
    public int age;
    public Car car;

    @Override
    public String toString() {
        return "Persion{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", car=" + car +
                '}';
    }
}

package com.laishuai.bean;

public class Car {

    private String name;
    private double lenght;
    private double width;

    public Car(String name, double lenght, double width) {
        this.name = name;
        this.lenght = lenght;
        this.width = width;
    }

    @Override
    public String toString() {
        return "Car{" +
                "name='" + name + '\'' +
                ", lenght=" + lenght +
                ", width=" + width +
                '}';
    }
}


<bean id="car0" class="com.laishuai.bean.Car">
        <constructor-arg value="宝马"></constructor-arg>
        <constructor-arg value="4"></constructor-arg>
        <constructor-arg value="4"></constructor-arg>
</bean>

<bean id="persion3" class="com.laishuai.bean.Persion">
        <property name="name" value="二狗子"></property>
        <property name="age" value="22"></property>
        <property name="car">
            <ref bean="car0"></ref>
        </property>
</bean>
内部Bean

此处 car0 被称为内部Bean

<bean id="persion3" class="com.laishuai.bean.Persion">
        <property name="name" value="二狗子"></property>
        <property name="age" value="22"></property>
        <property name="car">
            <!--<ref bean="car0"></ref>-->
            <bean id="car0" class="com.laishuai.bean.Car">
                <constructor-arg value="宝马X6"></constructor-arg>
                <constructor-arg value="4"></constructor-arg>
                <constructor-arg value="4"></constructor-arg>
            </bean>
        </property>
    </bean>

可以使用<null> 给Bean的字符串或其他对象类型的属性注入 null 值

相关文章

  • 开源项目的依赖注入

    开源项目的依赖注入 依赖注入概念 依赖注入(DI:Dependency Injection): 依赖注入方式: B...

  • 依赖注入的方式

    依赖注入: 依赖于某些方式给Bean的资源进行注入 Spring 支持三种依赖注入的方式 属性注入 构造器注入 工...

  • Spring Bean 装配

    依赖注入的方式 依赖注入可以分为3种方式: 构造器注入。 setter注入。 接口注入。 其中构造器注入和 set...

  • Dagger2 源码分析

    Dagger简单介绍 Dagger2涉及到依赖注入,有关依赖注入的请到理解依赖注入 通过注解方式实现依赖注入分为两...

  • Spring三种bean注入方式

    Spring中依赖注入有三种注入方式:一、构造器注入;二、设值注入(setter方式注入);三、Feild方式注入...

  • 6 DI 依赖注入

    6.1 构造器注入 前面已经讲过 6.2 Set方式注入【重点】 依赖注入:Set注入!依赖:bean对象的创建依...

  • spring的ioc和aop的原理

    IOC:依赖注入(控制反转),两种注入方式:依赖注入和设置注入,通过容器动态地将某种依赖注入到组件中,通过Spri...

  • 依赖注入的方式

    构造器注入(constructor injection) Set 注入 静态工厂方法注入 示例工厂方法注入

  • 结构体注入VS setter 注入

    结构体注入,setter注入是比较常用的依赖注入方式,都有各自的优缺点。setter注入是Spring推荐的依赖注...

  • 2018-07-18

    依赖注入方式 1.0开始,setter、构造器注入 2.5开始,Autowired注解的基于field方式注入 创...

网友评论

      本文标题:依赖注入的方式

      本文链接:https://www.haomeiwen.com/subject/lcppeqtx.html