Spring IOC/DI

目录

什么是Spring

企业级理解:

Spring的优势

方便解耦,简化开发

硬编码的方式解耦合:

AOP编程的支持

声明式事务的支持

方便测试

集成各种优秀框架

Spring环境搭建:

1.坐标

2.创建主配置文件

两大核心思想 

控制反转-Inversion Of Control

SpringIOC实现步骤

Eg:解耦获取dao对象

涉及的关键字:

实现类:

依赖注入-Spring DI

 理解:

实现方式:

数据类型

实现步骤


什么是Spring

是一款轻量企业级的开发框架,以IOC和AOP两大核心思想为内核,提供了展示层Spring MVC和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,能完美整合任意第三方技术[【框架和类库】,提供组件管理服,用于组件之间的解耦

企业级理解:

从头到尾,所有的应用层都由Spring来实现,符合企业级的标准:高并发,灵活多变的特性

而Mybatis是针对数据访问层的一款专业技术

Spring的优势

方便解耦,简化开发

 通过IOC容器来实现解耦,实现组件化编程,避免硬编码所造成的过度程序耦合,容易作扩展

硬编码的方式解耦合:

 通过工厂模式解耦:
    1.不要直接new对象,把他们的“完全限定名保存在独立的properties文件中”

    2.动态加载文件,并获取完全限定名称,通过“反射创建”。

AOP编程的支持

增强传统的OOP,进行面向切面编程

声明式事务的支持

通过声明式方式灵活的进行事务的管理,提高开发效率和质量

方便测试

集成各种优秀框架

Spring环境搭建:

1.坐标

<dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-context</artifactId>
     <version>5.3.29</version>
</dependency>

导入spring-context坐标后就集成了以下六个基本jar包

 

2.创建主配置文件

<?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">

</beans>

两大核心思想 

控制反转-Inversion Of Control

搭建好IOC容器【即Spring容器】将创建对象的权利交给Spring容器,由Spring框架根据配置文件或注解的方式创建并管理bean,bean与bean的依赖关系,使对象 之间形成松散耦合的关系,实现解耦。

控制:指创建对象的权利

反转:控制权交给外部环境

目的:解耦,使用IOC容器管理项目组件之间的耦合关系

SpringIOC实现步骤

  1.创建JavaBean

  2.将 JavaBean对象注入spring容器

  3.让springIOC容器以解耦方式实例化对象

Eg:解耦获取dao对象

public class Test01 {
    public static void main(String[] args) {
    //1.加载spring容器获取核心对象
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
    //2.获取实例
        IUserDao  dao = (IUserDao) applicationContext.getBean("dao");
        dao.save();
    }
}

涉及的关键字:

BeanFactory:父接口,多例模式【安全,性能差】

ApplicationContext  :子接口 ,单例模式【性能好,但不安全】

实现类

ClassPathXmlApplicationContext   相对路径加载配置文件

FileSystemXmlApplicationContext  绝对路径加载配置文件

AnnotationConfigApplicationContext 相对路径加载配置类

依赖注入-Spring DI

spring容器帮我们解耦创建了对象,但是怎么实现依赖调用

 理解

    将A和B的依赖关系以注入的方式关联在一起

实现方式:

 构造注入  通过构造方法进行关联

 set注入   通过setter方法进行关联

 属性注入 通过注解实现

数据类型

注入基本数据类型与String

注入JavaBean

注入复杂类型

实现步骤

1.提供对应的方法

2.配置xml--使用构造

<constructor-arg 属性名="属性值"></constructor-arg>
属性名:
    name=======>参数名
    index======>参数索引
    type=======>参数类型
    value======>参数具体数据
    ref========>参数数据的引用   用来实现JavaBean的注入

使用set注入

<property name="service" ref="serviceImp"/> 

 

测试

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值