Spring-基础(二)

  1. 2.1 分析
  2. 2.2 步骤
  3. 3.1 分析
  4. 3.2 步骤

一、IoC
-
Ioc(Inversion of Control)控制反转
使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部。

Spring对IoC进行了实现

  • 提供了容器,IoC,用来充当外部。
  • IoC容器负责初始化,这些被初始化的对象,称为Bean。

DI:依赖注入。

  • 在容器中建立Bean与Bean之间的关系,称为依赖注入。

二、IoC案例
-

2.1 分析

  1. 管理什么:Service和Dao
  2. 如何将被管理的对象告知IoC容器:配置
  3. 被管理的对象交给IoC容器,如何获取到IoC容器:接口
  4. IoC容器得到后,如何从容器中获取Bean:接口方法
  5. 使用Spring导入哪些坐标:Pom.xml

2.2 步骤

  1. 导入pom.xml坐标

    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.10.RELEASE</version>
    </dependency>
  2. 定义spring管理的类和接口

  3. 创建Spring配置文件,配置对应类作为Spring管理的Bean

    <beans>
    <bean id="bookService" class="xxxx.xxxx.BookServiceImpl"></bean>
    </beans>
  4. 初始化IoC容器,通过容器获取Bean

    ApplicationContext ctx = new ClassPathXmlApplicationContext("ApplicationContext.xml");
    BookService bs = (BookService) ctx.getBean("bookService");

三、DI案例
-

3.1 分析

  1. 基于IoC管理Bean
  2. Service中使用new形式创建的Dao对象是否保留:否
  3. Service中需要的Dao对象如何进入到Service中:提供方法
  4. Service与Dao之间的关系如何描述:配置

3.2 步骤

  1. 删除new创建的对象代码
  2. 配置setter方法
    public class BookServiceImpl xxx {
    public void setBookDao(BookDao bookDao) {
    this.bookDao = bookDao;
    }
    }
  3. 配置service和dao之间的关系
    <beans>
    <bean id="bookDao" class="xxx"/>
    <bean id="bookService" class="xxxx.xxxx.BookServiceImpl">
    <property name="bookDao" ref="bookDao"/>
    </bean>
    </beans>