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();

猜你喜欢

转载自blog.csdn.net/weixin_42445650/article/details/88831766