Spring入门案案例—IoC及DI

IOC(控制反转):

1. 创建service和serviceImpl对象;

// 创建接口
public interface UserService {
    public void addUser();
}
//创建接口实现类
public class UserServiceImpl implements UserService{
    public void addUser(){
        System.out.println("this is add method");
    }
}

2. 将实现类装入spring容器;

<bean id="UserService" class="service.UserServiceImpl"> </bean>

3.通过spring容器创建对象(调用三部曲)

        //获取容器
        ApplicationContext act = new ClassPathXmlApplicationContext("beans.xml");
        //获取内容从 spring 容器中获取对象,不需要通过new对象
        UserService us = (UserService) act.getBean("UserService");
        //使用容器中得到的对象,调用方法
        us.addUser();

DI(依赖注入):

1.创建Service和DAO(服务层访问DAO层)

//创建DAO接口
public interface BookDao {
    public void addBook();
}
//创建DAO接口实现类
public class BookDaoImpl implements BookDao {
    @Override
    public void addBook() {
        System.out.println("把信息jdbc到数据库");
    }
//创建Service接口
public interface BookService {
    public void addBook();
}
//创建Service实现类
ublic class BookServiceImpl implements BookService {

    /*之前是   接口 = 实现类;
    private BookDao bookDao = new BookDaoImpl();*/


    //在spring中   接口 + setter方法;
    private BookDao bookDao;

    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    @Override
    public void addBook() {
        this.bookDao.addBook();
    }
}

2.配置beans.xml文件

<!-- 创建service -->

        <bean id="BookService" class="service.BookServiceImpl">
            <property name="bookDao" ref="BookDao"> </property>
	    </bean>
	
	<!-- 创建dao实例 -->
	
        <bean id="BookDao" class="service.BookDaoImpl"> </bean>
        

3.创建测试类

        //获取容器
        ApplicationContext acx = new ClassPathXmlApplicationContext("beans.xml");
        //从容器中获取对象
        BookService bookService = acx.getBean("BookService",BookService.class);
        //使用对象
        bookService.addBook();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值