spring的依赖注入方式

spring的依赖注入两种方式:Setter-based Dependency Injection(set方法去注入) 和 Constructor-based Dependency Injection(通过构造函数)
1、Setter-based Dependency Injection:
set方法注入与属性名字无关,只有bean对象注入的name名字有关。

package com.it.app.service;

public class ServiceImpl3 {

    //set方法注入与属性名字无关,只有bean对象注入的name名字有关。
    private ServiceImpl1 oned;

    private ServiceImpl2 twod;

    private int elementd;

    public void setElement(int elementd) {
        this.elementd = elementd;
    }

    public void setOne(ServiceImpl1 oned) {
        this.oned = oned;
    }

    public void setTwo(ServiceImpl2 twog) {
        this.twod = twog;
    }
    
}

xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--通过set注入-->
    <bean id="example" class="com.it.app.service.ServiceImpl3">
      <!--该name名称需与set方法名保持一致-->
        <property name="one">
            <ref bean="serviceImpl1"/>
        </property>

        <property name="two">
            <ref bean="serviceImpl2"/>
        </property>

        <property name="element" value="1"></property>
    </bean>
   
    <bean id="serviceImpl1" class="com.it.app.service.ServiceImpl1"></bean>
    <bean id="serviceImpl2" class="com.it.app.service.ServiceImpl2"></bean>
</beans>

2、Constructor-based Dependency Injection:

package com.it.app.service;

public class ServiceImpl4 {


    private ServiceImpl1 oned;

    private ServiceImpl2 twod;

    private int elementd;


    public ServiceImpl4(ServiceImpl1 oned,ServiceImpl2 twod, int elementd) {
        this.twod = twod;
        this.elementd = elementd;
        this.twod = twod;
    }
}

xml文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--通过set注入-->
    <bean id="example" class="com.it.app.service.ServiceImpl3">
        <property name="one">
            <ref bean="serviceImpl1"/>
        </property>

        <property name="two">
            <ref bean="serviceImpl2"/>
        </property>

        <property name="element" value="1"></property>
    </bean>

    <!--通过构造函数-->
    <bean id="serviceImpl4" class="com.it.app.service.ServiceImpl4">
        <constructor-arg>
            <ref bean="serviceImpl1"></ref>
        </constructor-arg>
        <constructor-arg ref="serviceImpl2"></constructor-arg>
        <constructor-arg type="int" value="1"></constructor-arg>
    </bean>

    <bean id="serviceImpl1" class="com.it.app.service.ServiceImpl1"></bean>
    <bean id="serviceImpl2" class="com.it.app.service.ServiceImpl2"></bean>
</beans>
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值