DI入门案例

  一、DI案例思路

  1.基于ioc管理

  2.services 中是通过new的方式创建的Dao对象不能保留

  3.Serices中需要的Dao对象如何进入到Serives中?(提供方法:最简单的是提供一个set方法)

  4.serives与Dao之间的关系如何描述?(配置)

二、DI的运用

原始的未使用DI方式 逻辑层调用数据层

 使用DI思想降低耦合度

 三、源代码

BookDao接口

package com.itheima.dao;

public interface BookDao {
    public void  save1();
}

BookDaoImpl类


package com.itheima.dao.impl;
import com.itheima.dao.BookDao;

public class BookDaoImpl implements BookDao {

    @Override
    public void save1() {
        System.out.println("bookdao save-----");
    }
}

BookServices接口

package com.itheima.serives;

public interface BookServices {
    public void save2();
}

BookSerivesImpl类


package com.itheima.serives.impl;

import com.itheima.dao.BookDao;
import com.itheima.dao.impl.BookDaoImpl;
import com.itheima.serives.BookServices;

public class BookSerivesImpl implements BookServices {
   // 提供对应的set方法
    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    //删除业务层使用new的方式创建的dao 对象
    private BookDao bookDao;
    @Override
    public void save2() {
        // 逻辑层调用数据层

        bookDao.save1();
        System.out.println("bookserives dao");
    }
}

applicationContext.xml文件

package com.itheima;

import com.itheima.dao.BookDao;
import com.itheima.serives.BookServices;
import com.itheima.serives.impl.BookSerivesImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App1 {
    public static void main(String[] args) {
      // 加载ioc容器
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        // 根据传入的id在ioc容器中获取相应的bean
        BookSerivesImpl bookSerives = (BookSerivesImpl) ac.getBean("bookSerives");
        bookSerives.save2();
    }
}

App1入口类

package com.itheima;

import com.itheima.dao.BookDao;
import com.itheima.serives.BookServices;
import com.itheima.serives.impl.BookSerivesImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App1 {
    public static void main(String[] args) {
      // 加载ioc容器
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
        // 根据传入的id在ioc容器中获取相应的bean
        BookSerivesImpl bookSerives = (BookSerivesImpl) ac.getBean("bookSerives");
        bookSerives.save2();
    }
}

四、运行结果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天的接口写完了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值