Spring依赖注入

Bean依赖注入方式

构造方法
  1. 在UserServiceImpl中创建有参构造
public class UserServiceImpl  implements IUserService {

    private IUserDao userDao;

    public UserServiceImpl(IUserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void save() {
        userDao.save();
    }
}
  1. 配置Spring容器调用有参构造时进行注入
    <!--
        id : 标识符属性,作为ioc获取实例的key。
        class : 实现类全路径,ioc根据该路径通过反射创建实例。
    -->
    <bean id="userDao" class="com.zhoufengbin.dao.impl.UserDaoImpl"></bean>

    <!--构造方法依赖注入方式-->
    <!--配置UserService-->
    <bean id="userService" class="com.zhoufengbin.service.impl.UserServiceImpl">
        <!--constructor-arg 方式一-->
        <!--
        constructor-arg 表示创建userService对象时不再使用无参构造方法,而是使用有参构造方法
        index 表示第几个参数,0表示有参构造方法中第一个位置的参数
        type 参数的类型
        ref 传入的实参,根据创建持久层的id获取
        -->
        <!--<constructor-arg index="0" type="com.zhoufengbin.dao.IUserDao" ref="userDao"/>-->
        <!--constructor-arg 方式二-->
        <!--
            name 有参构造的参数名
        -->
        <constructor-arg name="userDao" ref="userDao"/>
    </bean>
set方法
  1. 在UserServiceImpl中创建set方法
public class UserServiceImpl  implements IUserService {

    private IUserDao userDao;

/*  //构造方法依赖注入
    public UserServiceImpl(IUserDao userDao) {
        this.userDao = userDao;
    }*/

    //set方法依赖注入
    public void setUserDao(IUserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void save() {
        userDao.save();
    }
}
  1. 配置Spring容器调用有参构造时进行注入
    <!--set方法依赖注入-->
    <!--Service层待传入的DAO层对象-->
    <bean id="userDao" class="com.zhoufengbin.dao.impl.UserDaoImpl"></bean>
    <!--userService配置-->
    <bean id="userService" class="com.zhoufengbin.service.impl.UserServiceImpl">
        <!--
            name setUserDao()方法 UserDao u小写
        -->
        <property name="userDao" ref="userDao"/>
    </bean>
P命名空间注入
  • P命名空间注入本质也是set方法注入,但比起上述的set方法注入更加方便,主要体现在配置文件
    中.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
		<!--引入P命名空间-->
       xmlns:p="http://www.springframework.org/schema/p"
       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方法依赖注入-->
    <!--Service层待传入的DAO层对象-->
    <bean id="userDao" class="com.zhoufengbin.dao.impl.UserDaoImpl"></bean>
    <!--userService配置-->
    <bean id="userService" class="com.zhoufengbin.service.impl.UserServiceImpl" p:userDao-ref="userDao">
    </bean>


</beans>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值