Spring 框架------IOC思想

一、引言

引言
  1. 背景:2002年, 由 罗德 约翰森 创作
  2. 定义:Spring框架是一个集众多设计模式工厂单例、代理、策略…)于一身的开源的轻量级的 项目管理框架。致力于JAVAEE轻量级解决方案
  3. 轻量级解决方案:提供一个简单地、统一的、高效的方式构造整个应用,可将单层框架以最佳的组合糅合在一起建立一个连贯的体系。
  4. 特点:Spring框架的本质不是替换项目中的某个技术,而是将项目中原有的单层框架进行整合、管理开发。
Spring框架的核心作用
  1. 项目管理框架:对现有项目中的组件进行管理(创建 | 使用 | 销毁);
    用来负责项目中组件对象的创建、使用、销毁
    组件:action、service、dao
    [注]:entity组件不交给spring进行管理

二、Spring开发

  1. 引入Spring框架相关依赖
    Spring-core :核心依赖
    Spring-context
    Spring-beans
    Spring-web
    Spring-expression
    Spring-jdbc
    Spring-aspects
    Spring-context-support
  2. 引入Spring框架配置文件
    配置文件:名字随便(默认:applicationContext.xml) 无位置要求
  3. 通过spring管理组件
    bean:管理组件对象的创建
    class:指定所管理组件对象的全限定名
    id:指定spring框架创建的当前组件对象在spring(容器|工厂)中唯一标识,全局唯一。
  4. 启动工厂,获取对象
    1)启动工厂:ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(“init/spring.xml”);
          【注】参数为 spring配置文件的目录结构
    2)获取工厂中指定对象: UserDao userDaoImpl = (UserDao) context.getBean(“userDaoImpl”);
          【注】参数为 spring配置文件中 当前对象的bean标签的唯一标识id属性值

三、Spring框架的核心思想

 IOC思想
  1. IOC:Inversion Of Control  控制反转、反转控制
       定义:控制反转,即控制权力的反转。也就是将手动new对象的权力移交给spring,通过在spring配置文件中配置bean标签的形式创建对象的过程。

  2. DI: Dependency Injection 依赖注入
       定义:为组件中成员变量完成赋值的过程,称之为依赖注入
       语法
          1.组件对象中需要哪个组件,就将哪个组件 声明为成员变量并提供公开的set方法
          2.在spring的配置文件中对应的组件标签内完成属性的赋值操作
            property:用来给组件中的私有属性进行赋值操作
                name:指定组件中的哪个私有属性
                ref  :指定赋值对象在工厂中的唯一标识

  3. IOC 全部概述:控制反转,就是将手动new创建对象的权力移交给spring,由spring工厂创建对象过程,同时通过DI的方式维护组件与组件调用关系的思想

  4. Set注入

    1)八种基本类型+String+Data 使用property标签的value属性赋值
      context.getBean(“userDaoImpl”);
          【注】参数为 spring配置文件中 当前对象的bean标签的唯一标识id属性值

三、Spring框架的核心思想

 IOC思想
  1. IOC:Inversion Of Control  控制反转、反转控制
       定义:控制反转,即控制权力的反转。也就是将手动new对象的权力移交给spring,通过在spring配置文件中配置bean标签的形式创建对象的过程。

  2. DI: Dependency Injection 依赖注入
       定义:为组件中成员变量完成赋值的过程,称之为依赖注入
       语法
          1.组件对象中需要哪个组件,就将哪个组件 声明为成员变量并提供公开的set方法
          2.在spring的配置文件中对应的组件标签内完成属性的赋值操作
            property:用来给组件中的私有属性进行赋值操作
                name:指定组件中的哪个私有属性
                ref  :指定赋值对象在工厂中的唯一标识

  3. IOC 全部概述:控制反转,就是将手动new创建对象的权力移交给spring,由spring工厂创建对象过程,同时通过DI的方式维护组件与组件调用关系的思想

  4. Set注入

    1)八种基本类型+String+Data 使用property标签的value属性赋值
      context.getBean(“userDaoImpl”);
          【注】参数为 spring配置文件中 当前对象的bean标签的唯一标识id属性值

三、Spring框架的核心思想

 IOC思想
  1. IOC:Inversion Of Control  控制反转、反转控制
       定义:控制反转,即控制权力的反转。也就是将手动new对象的权力移交给spring,通过在spring配置文件中配置bean标签的形式创建对象的过程。

  2. DI: Dependency Injection 依赖注入
       定义:为组件中成员变量完成赋值的过程,称之为依赖注入
       语法
          1.组件对象中需要哪个组件,就将哪个组件 声明为成员变量并提供公开的set方法
          2.在spring的配置文件中对应的组件标签内完成属性的赋值操作
            property:用来给组件中的私有属性进行赋值操作
                name:指定组件中的哪个私有属性
                ref  :指定赋值对象在工厂中的唯一标识

  3. IOC 全部概述:控制反转,就是将手动new创建对象的权力移交给spring,由spring工厂创建对象过程,同时通过DI的方式维护组件与组件调用关系的思想

  4.  Set注入重点

    1)注入 八种基本类型+String+Data 使用property标签的value属性赋值
               Data在配置文件中格式为(yyyy/MM/dd HH:mm:ss
    2)注入 引用类型对象类型)使用 property标签的ref属性赋值
    3)注入 数组类型 使用 arrayvalue或ref 标签 赋值

    4)注入 集合类型
        List: listvalue或ref标签
        Set: setvalue或ref标签
        Map: mapentry标签
        properties: propsprop标签

  5. 构造注入
      语法:需要哪个组件就声明为成员变量,并提供公开的构造方法
         在配置文件中使用<'constructor-arg>标签进行注入

  6. 自动注入
      在Spring工厂配置文件中通过制定自动注入方式,开启组件属性的自动赋值
    注意:1)底层使用原理为 Set方式注入
       2)自动注入需要在对应组件标签开启才能使用
       3)只能用于引用类型(对象类型)组件的注入
    语法:1)需要谁将谁声明为成员变量,并提供Set方法
       2)在对应组件标签中加入autowire属性并指定自动注入方式
         byType:通过属性的类型自动完成匹配注入,找不到不赋值。【注】若存在多个类型一致的组件,使用自动类型注入会报错
         byName:根据成员变量的名字去工厂中获取与之对应一直的名字,找不到不赋值。

四、Spring工厂的相关特性

  1. Spring中工厂创建对象的模式
     1)默认Spring在管理组件对象  使用单例创建 singleton
     2)如何修改工厂创建组件对象为多例
        由于Struts2的action是多例的,必须以多利形式管理
        解决方式:
          <'bean id="…" class="…" scope="singleton | prototype(多例)">
  2. Spring工厂创建对象的原理
      原理:反射+构造函数
        Class.forName(“类全限定名”).newInstance();即可拿到对应对象
  3. Spring工厂管理组件生命周期
        ①组件对象什么时候创建
        ②组件对象什么时候销毁
      1)单例
        生命周期:init-method属性  destroy-method属性:
        工厂启动所有单例的对象随之创建,工厂关闭所有单例对象随之销毁
      2)多例
        每次在工厂中获取时创建,对于多例对象的销毁不作处理,JVM去销毁
  4. Spring框架的优点
      1)解耦合:使用配置文件管理java类,再生产环境中更换类的实现时不需要重新部署,修改文件即可
      2)Spring默认使用单例的模式创建对象,减少内存的占用
      3)通过依赖注入建立了类与类之间的关系,使java之间关系更为清晰,方便维护与管理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值