【Spring篇】简述Ioc入门案例,DI入门案例

121 阅读4分钟

🎄Spring Framework系统架构

Spring Framework是一个开源的Java应用程序框架,它提供了一种全面的解决方案来构建企业级Java应用程序。Spring框架的系统架构可以简要概括为以下几个关键模块:

  1. 核心容器(Core Container):

    • IoC容器(Inversion of Control):Spring的IoC容器是Spring框架的核心组件,它负责管理和组织应用程序中的对象(Bean)。通过IoC容器,开发者不再需要手动创建和管理对象的实例,而是通过配置文件或注解将对象的创建和依赖关系交给Spring框架管理。
    • 依赖注入(Dependency Injection):Spring使用依赖注入来实现对象之间的解耦。开发者只需要定义对象的依赖关系,Spring框架会负责将相应的依赖注入到对象中。
  2. AOP(Aspect-Oriented Programming)模块:

    • 面向切面编程:Spring的AOP模块提供了一种在应用程序中实现横切关注点的方式。通过AOP,开发者可以将与业务逻辑无关的横切关注点(例如日志记录、事务管理等)从业务逻辑中分离出来,并通过切面(Aspect)将它们应用到目标对象中。
  3. 数据访问与集成模块:

    • JDBC模板:Spring的JDBC模板提供了简化数据库访问的方式,通过封装JDBC的操作,开发者可以更方便地进行数据库的增删改查操作。
    • ORM集成:Spring框架提供了与各种ORM(对象关系映射)框架的集成支持,如Hibernate、MyBatis等。这使得开发者可以更轻松地使用ORM框架来进行对象与数据库的映射和操作。
    • 事务管理:Spring的事务管理模块为开发者提供了声明式事务管理的能力。通过配置事务属性,开发者可以定义事务的边界和行为,而无需显式编写繁琐的事务管理代码。
  4. Web应用程序模块:

    • MVC框架:Spring的Web MVC框架是一个灵活和可扩展的Web应用程序开发框架,它基于模型-视图-控制器(MVC)设计模式。开发者可以使用Spring MVC来构建Web应用程序,并通过配置路由规则、处理器映射、视图解析等来实现请求的分发和处理。
    • Web服务支持:Spring框架提供了对RESTful和SOAP等Web服务的支持,开发者可以轻松地构建和集成Web服务。

此外,Spring框架还提供了许多其他功能模块,如安全性、缓存、消息队列等,以满足不同应用程序的需求。

总体而言,Spring Framework的系统架构通过IoC容器和AOP模块提供了灵活可扩展的开发方式,使得开发者可以更加专注于业务逻辑的实现,同时降低了应用程序的耦合度和重复代码的编写。这使得Spring成为Java开发中最流行的框架之一。

图片.png

🎆Spring核心概念

🌺IoC控制反转

使用对象时,由主动new产生对象转换为由外部提供对象,在此过程中对象创建控制权由程序转移到外部,这种思想称为控制反转

spring技术对IoC思想进行了实现

  • spring提供了一个容器,称为IoC容器,用来充当IoC思想中的“外部”
  • IoC容器负责对象的创建,初始化等一系列工作,被创建或被管理的对象在IoC容器里面称为Bean

🌺DI依赖注入

在容器里面建立bean与bean之间的依赖关系,称为依赖注入

图片.png

🛸目标

充分解耦

  • 使用IoC容器管理bean(IoC)
  • 在IoC容器内将有依赖关系的bean进行关系绑定(DI)

🛸最终效果

使用对象不仅可以直接从IoC容器里面获取,并且获取到的bean,已经绑定了所有的依赖关系

🍔IoC入门案例

🎈步骤

🏳️‍🌈导入Spring坐标

图片.png

🏳️‍🌈定义Spring管理的类(接口)

图片.png

🏳️‍🌈创建Spring配置文件,配置对应的类作为Spring管理的bean

图片.png

🏳️‍🌈初始化IoC容器(Spring核心容器 / Spring容器),通过容器获取bean

图片.png

🍔DI入门案例

🎈步骤

🏳️‍🌈删除使用new的形式创建对象的代码

图片.png

🏳️‍🌈提供依赖对象对应的setter方法

图片.png

🏳️‍🌈配置service与dao之间的关系

图片.png

🎈代码实现

首先创建一个maven项目 在pom.xml文件中添加下面的代码

 <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

图片.png 然后点击右边框的maven,刷新一下 看到有依赖,即可

然后右击resource,创建xml文件

图片.png

剩下的代码我放到网盘里面了,里面是完整代码,需要的请自取 我用夸克网盘分享了「spring_01_quickstart」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:https://pan.quark.cn/s/24e5655c7d18