spring IoC 依赖注入-set()方式

步骤:

UserSrvImpl 不需要 通过 new 实例化 UserDao :

  • UserSrvImpl类定义 成员变量 IUserDao dao
  • 生成 setter 方法
  • 在xml中增加
    <property name="dao" ref="UserDao"/>

定义dao接口

public interface IUserDao {
    public void save(String username,String password);
}

定义dao实现类

public class UserDao implements IUserDao {
    public void save(String username,String password){
        System.out.println("UserDao 保存 "+username+","+password+" 成功!");
    }
}

定义service接口

public interface IUserService {
    public void save(String username, String password);
}

定义service实现类(关键)

public class UserSrvImpl implements IUserService {
    private IUserDao dao;

    public UserSrvImpl(){
        System.out.println("UserSrvImpl构造方法");
    }
    public void save(String username,String password){
        dao.save(username,password);
    }

    public void setDao(UserDao dao) {
        this.dao = dao;
    }
}

注意: 定义 IUserDao dao 成员变量,并增加 set() 方法

定义spring.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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="UserSrvImpl" class="top.malaoshi.UserSrvImpl">
        <property name="dao" ref="UserDao"></property>
    </bean>
    <bean id="UserDao" class="top.malaoshi.UserDao">
    </bean>
</beans>

解释: 在 <bean> 标签中,需要增加 <property name="dao" ref="UserDao"></property> 标签,
name 属性值是该类的 setXXX() 方法中 XXX的部分
ref 属性值是 <bean> id="UserDao"> 的 UserDao

注入基本数据类型

可以通过下面方式注入 基本数据类型

<property name="name" value="李雷">

原文出处:/show_1IX1nLKKcIR.html