深入浅出Spring框架:从IOC与DI基础到掌握自动装配原理

问题导入

我们为什么要学习Spring框架?

为什么要学
  • Spring技术是JavaEE开发必备技能,企业开发技术选型命中率>==90%==
  • 专业角度 
    •  ==简化开发==,降低企业级开发的复杂性
    • ==框架整合==,高效整合其他技术,提高企业级应用开发与运行效率
怎么学
  •  学习Spring框架设计思想
  •  学习基础操作,思考操作与思想间的联系
  •  学习案例,熟练应用操作的同时,体会思想

 一、Spring核心概念

问题导入

问题1:目前我们的代码存在什么问题以及怎么解决这些问题?

问题2:请描述什么是IOC,什么是DI?

1.1 目前我们代码存在的问题 

  • 代码书写现状
    •  耦合度偏高 
  • 解决方案
    •  使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象

1.2 核心概念 
  • ==IOC(Inversion of Control)控制反转==使用对象时,由主动new产生对象转换为由==外部==提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。通俗的讲就是“==将new对象的权利交给Spring,我们从Spring中获取对象使用即可==”
  • Spring技术对IoC思想进行了实现

    • Spring提供了一个容器,称为==IOC容器==,用来充当IoC思想中的“外部”

    •  IOC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为==Bean==

  • DI(Dependency Injection)依赖注入==

    •  在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入

  • 目标:充分解耦
    •  使用IoC容器管理bean(IOC)
    •  在IoC容器内将有依赖关系的bean进行关系绑定(DI)
  • 最终效果
    • 使用对象时不仅可以直接从IoC容器中获取,并且获取到的bean已经绑定了所有的依赖关系

二、IOC和DI入门案例 

1 IOC入门案例

1.1 门案例思路分析
  1.  管理什么?(Service与Dao)
  2. 如何将被管理的对象告知IOC容器?(配置文件)
  3. 被管理的对象交给IOC容器,如何获取到IoC容器?(接口)
  4.  IOC容器得到后,如何从容器中获取bean?(接口方法)
  5.  使用Spring导入哪些坐标?(pom.xml)
1.2 实现步骤 

【第一步】导入Spring坐标
【第二步】定义Spring管理的类(接口)
【第三步】创建Spring配置文件,配置对应类作为Spring管理的bean对象
【第四步】初始化IOC容器(Spring核心容器/Spring容器),通过容器获取bean对象

1.3 实现代码 
【第一步】导入Spring坐标
<dependencies>
    <!--导入spring的坐标spring-context,对应版本是5.2.10.RELEASE-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
</dependencies>
【第二步】定义Spring管理的类(接口) 
  • BookDao接口和BookDaoImpl实现类
public interface BookDao {
    public void save();
}

public class BookDaoImpl implements BookDao {
    public void save() {
        System.out.println("book dao save ...");
    }
}
【第三步】创建Spring配置文件,配置对应类作为Spring管理的bean对象
  • 定义applicationContext.xml配置文件并配置BookServiceImpl 
<?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">

    <!--
        bean标签:表示配置bean
        id属性:表示给bean起名字
        class属性:表示给bean定义类型
    -->
    &l
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值