Spring框架中IOC和DI学习

6 篇文章 0 订阅
3 篇文章 0 订阅

一,IOC概念

控制反转(IOC)是一种设计思想,它将对象的创建和依赖关系的管理交由框架或容器来实现,从而实现程序的松耦合。在传统的开发模式中,对象之间的依赖关系通常是由程序员在代码中直接创建和管理的。而在IOC模式中,程序员只需定义好对象和对象之间的依赖关系,而容器负责创建和管理对象,程序员只需要使用这些对象即可。

二,DI概念

依赖注入(DI)是IOC的一个重要实现方式,它指的是将依赖关系从应用程序中抽象出来,通过IOC容器将依赖关系注入到对象中,从而实现程序的松耦合。DI可以通过构造函数注入、Setter方法注入和字段注入等方式实现。

三,示例

1,(dao包)首先,我们需要定义一个接口BookDao

public interface BookDao {

     void add();
}

2,接下来,我们定义一个实现BookDao接口的类BookDaoImpl

public class BookDaoImpl implements BookDao {

    @Override
    public void add() {
        System.out.println("BookDaoImpl....add");
    }
}

3,(service包)然后,定义一个接口BookService 

public interface BookService {

     void add();
}

4,然后定义二个实现BookService接口的类BookServiceImpl和BookServiceVip

public class BookServiceImpl implements BookService {
    BookDao bookDao;
    @Override
    public void add() {
        System.out.println("BookServiceImpl....add");
        bookDao=new BookDaoImpl();
        bookDao.add();
    }
}
public class BookServiceVip implements BookService {
    @Override
    public void add() {
        System.out.println("BookServiceVip...add");
    }
}

 5,Spring核心配置文件

在src根目录下建文件Spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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">

    <!--
    id:给创建出来的对象起个名字
    class:要创建对象对应类的全类名
    -->
    <bean id="book" class="com.smrsar.dao.impl.BookImpl"/>
    <bean id="bookService" class="com.smrsar.service.Impl.BookServiceImpl">
        <!--
        通过property给类的撰性进行注入数据:默认使用的是setter方法
        常规类型使用value注入:
        对象使用ref引用上面定义的:
        -->
        <property name="bookDao" ref="book"/>
    </bean>

</beans>

6,(test包)测试

package com.smrsar.test;

import com.smrsar.service.BookService;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test01 {
    BookService bookService;

    @Test
    public void Test01() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        bookService = (BookService) context.getBean("bookService");
        bookService.add();
    }


}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值