将Dao层注入到Service层

三层架构:界面层,业务逻辑层,数据访问层
三层之间的交互
用户使用界面层(Controller)—业务逻辑层(Service)—数据访问层(Dao层)----数据库(mysql)
三层对应的处理框架:
界面层------springMVC
业务逻辑层-------spring
数据访问层------mybatis
    由上面的过程可以知道业务逻辑层会调用Dao层,所以我们可以直接将依赖关系的管理交给spring维护,在Service类需要用到Dao类的对象,由spring为我们提供,只需在配置文件中说明关系的维护;
    所以我们需要在spring容器中注入Dao类,这样以后在调用Service层的时候会在内部连带着调用Dao层,下面介绍两种注入方法:set方法和有参构造方法

set方法注入:

xml文件里

 <bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>
 <bean id="userService" class="com.itheima.service.impl.UserServiceImpl">
 	 <property name="userDao" ref="userDao"/>
 </bean> 

UserServiceImpl类中

public class UserServiceImpl implements UserService {
    private UserDao userDao;
    public void setUserDao(UserDao userDao) {
        this.userDao=userDao;
    }
 }

    上边的property标签中name表示调用setUserDao方法,ref表示引用容器内部标签userDao,所以这句话的意思是,调用setUserDao方法,将容器内部的userDao作为参数传入到userServiceImpl中。这样也就完成了依赖注入。

有参构造方法注入

xml文件中

 <bean id="userService" class="com.itheima.service.impl.UserServiceImpl">
        <constructor-arg name="userDao" ref="userDao"/>
 </bean>

UserServiceImpl类中

public class UserServiceImpl implements UserService {
    private UserDao userDao;
    public UserServiceImpl(UserDao userDao) {
        this.userDao=userDao;
    }
    public UserServiceImpl() {

    }
 }

    constructor-arg标签里的name表示构造方法的参数名称,ref表示参数,所以到UserServiceImpl类中就会将userDao传入到UserServiceImpl的有参构造里面,这样也就完成了依赖注入。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值