zoukankan      html  css  js  c++  java
  • Spring IOC模块的简单介绍

    首先,本人正在学习spring,这是一点心得体会,所以本文中会有不足、错误之处,欢迎各位大佬进行指点。

    其次对于框架而言,知道反射是很重要,所以建议在学会反射了后在去看看框架。

    Spring:是企业级java生态应用中的一个开源、轻量级的软件开发框架(半成品)
     作用:主要就是通过软件开发中的共性进行封装、抽象、组合等方式来简化软件开发过程,降低运营成本和开发周期
    总结:就是用于资源整合,方便开发减少开发量。框架就是一个工具,用来方便开发的工具。
    那么,我们现在介绍的spring底层运行的一些机制,所以在介绍上比较复杂,那么在整个讲解过程反可能会产生spring这么麻烦的感觉,首先在这里进行一些解释。

    Spring中的核心模块:

    1) IOC  模块(控制反转容器):对象创建,对象存储,对象依赖管理。

    2) DATA 模块(整合JDBC,MyBatis,JPA,....)

    3) MVC  模块(重点解决与表示层通讯问题)

    4) AOP  模块(重点解决对象功能扩展问题)

    5).............

    IOC模块,

    介绍:Spring中有一个核心的容器,这个容器通常称之为IOC容器,那么这个容器的核心思想是控制反转思想的实现。

    它可以负责对象的创建,对象的存储(map),对象的管理(依赖查找,依赖注入)。

    在框架中的地位:

    创建过程:在eclipse中创建一个maven项目,添加spring依赖和xml的配置文件,然后编写一个类,在编写一个单元测试类,用于创建对象

    问题:

    1)如何将HelloService对象交给Spring管理?

    2)Spring如何构建此类的对象?

    3)Spring如何存储此对象?

    其中最为关键的是spring-configs.xml文件中的Bean标签

    Spring中可以通过bean标签描述由它管理的对象

    1)id属性的值为bean对象的唯一标识

    2)class属性的值为类全名(包名+类名)

    比如:<bean id="hello"  class="beans.Hello"></bean>

     如何测试?

    1.初始化Spring框架的IOC对象,解析XML文件,储存配置信息

    比如:ClassPathXmlApplicationContext   ctx     =    new ClassPathXmlApplicationContext("spring-configs.xml");

    2.获取Bean对象,内容包含了:何时创建、如何创建、从哪里获取对象

    比如:Hello hello   =   ctx.getBean("hello",Hello.class);

    3.应用Bean对象

    比如:hello.sayHello();

    4.释放资源

    比如:ctx.close();

     在整个Spring框架中Bean对象是核心,那么接下来我们来谈谈Bean对象的基本配置
    Bean对象:在软件应用中只要是被Spring管理的所以对象都是属于Bean对象

    Bean的构建方式有来两种:1.直接通过构造方法    2.通过工厂对象的实例方法

    1.通过构造方法、静态方法、实例及实例方法进行构造对象       注意:在构造方法的时候都会用到反射机制

    2.工厂对象:(1)通过FactoryBean的getObject方法创建类的实例,定义一个工厂对象,此类型的交给FactoryBean创建实例

            (2)定义一个Bean工厂ObjectFactoryBean(要实现FactoryBean接口),此工厂要创建ObjectFactory类型对象,然后将此对象交给Spring管理。

    具体的代码就是不写了,大家可以在网上搜索      Spring IOC创建Bean对象的方法   会有很多的方法和例子,大家可以自己去尝试做一下

    Bean的作用域

    1) singleton (这个作用域标识的对象具备全局唯一性):系统默认

    2) prototype(这个作用域标识的对象每次获取都会创建新的对象)

     

    那么Bean对象其实大家应该知道很重要了,那么接下来我就像谈谈关于Bean对象的生命周期

    Bean对象是有生命周期的,它的生命周期包括了:创建、初始化、服务、销毁整个运行的过程,那么我们可以通过Init-method,destory-method属性指定bean的生命周期方法

    比如:

    注意:关于Bean对象的销毁是否由Spring是取决于Bean的的作用域:

    1) singleton作用域的对象可以在容器关闭时销毁(会调用对象的销毁资源的方法)

    2) prototype作用域的对象可以由容器创建对象,初始化对象,但不负责销毁.

     这就是在学习了Spring IOC的一点点心得,说得很浅,不是很深,有错误的地方还望各位大佬指导下!

  • 相关阅读:
    三元表达式 列表和字典推导式 函数对象 名称空间 作用域 global和nonlocal 函数装饰器 枚举对象
    函数参数 打散机制 字符串比较 返回值
    函数简介
    三种字符串的介绍 文件的读写
    字符编码
    数据类型及其常用方法 数据类型转换 可变与不可变 值拷贝与深浅拷贝
    流程控制 while和for循环
    变量命名规范 常量 输入和输出 注释 数据类型 运算符 逻辑运算符
    语言分类 编译型和解释型语言分析 环境变量 代码执行的方式 pip介绍 变量
    Python django tests
  • 原文地址:https://www.cnblogs.com/zhu-qi/p/9921796.html
Copyright © 2011-2022 走看看