Spring_依赖注入(Dependency Injection)

本文深入讲解了Spring框架中的依赖注入概念及其三种实现方式:构造函数注入、setter方法注入和注解注入。通过实例代码展示了如何在bean.xml配置文件中定义bean类及基本类型和复杂类型的依赖关系。

Spring_依赖注入(Dependency Injection)

使用Spring框架后,Spring将会对类间的依赖关系进行管理,而这就叫做依赖注入。
注意:经常变化的数据,并不适合使用依赖注入

一、依赖注入的三种方式:

1)使用构造函数
2)使用setter方法
3)使用注解(请参考spring_基于注解的IOC配置
bean.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">

    <bean id="beanDao1" class="beanDaoClass1"></bean>
    
	<!--使用构造函数-->
    <bean id="beanService1" class="beanServiceClass1" >
        <constructor-arg name="strs" value="test"></constructor-arg>
        <constructor-arg name="integer" value="20"></constructor-arg>
        <constructor-arg name="beanDao1" ref="beanDao1"></constructor-arg>
    </bean>


	<!--使用setter方法-->
    <bean id="beanService2" class="beanServiceClass2">
        <property name="strs" value="test"></property>
        <property name="integer" value="20"></property>
        <property name="beanDao1" ref="beanDao1"></property>
    </bean>

</beans>

java文件代码

//------------------------beanDaoInterface start-----------------------------
public interface IBeanDao {
}
//------------------------beanDaoInterface end-------------------------------



//------------------------beanDaoClass1 start---------------------------------
public class beanDaoImpl implements IBeanDao {
    public AccountDaoImpl() {
        System.out.println("new beanDaoImpl();");
    }
}
//------------------------beanDaoClass1 end-----------------------------------



//------------------------beanServiceClass1 start-----------------------------
//-------------------------------使用构造函数-----------------------------------
public class AccountServiceImpl implements IAccountService {
 private String strs;
 private Integer integer;
 private IBeanDao beanDao1;

 public AccountServiceImpl(String strs, Integer age,IBeanDao beanDao1) {
  this.strs= strs;
  this.integer= integer;
  this.beanDao1 = beanDao1;
 }
}
//------------------------beanServiceClass1 end------------------------------

//------------------------beanServiceClass2 start-----------------------------
//-----------------------------使用setter注入-----------------------------------
public class AccountServiceImpl2 implements IAccountService {
 private String strs;
 private Integer integer;
 private IBeanDao beanDao1;

 public String getStrs() {
  return strs;
 }

 public void setStrs(String strs) {
  this.strs= strs;
 }

 public Integer getInteger () {
  return integer;
 }

 public void setInteger (Integer integer) {
  this.integer= integer;
 }
}
//------------------------beanServiceClass2 end-----------------------------
二、依赖注入的数据:

1)在配置文件中配置的bean类
2)基本类型和String
3)复杂类型/集合类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值