• Spring——(一)IoC


    一. 什么是IOC?

    IOC:inversion of Control 控制反转。

    1. 控制反转:即控制权由应用程序代码转到了外部容器。(反转:就是控制权的转移)。——降低业务对象之间的依赖程度,即实现了解耦。

    2. 实现:IOC容器主要使用DI(Dependency Injection依赖注入)方式实现的。也就是说:对象的查找、定位、创建全部由容器管理,容器会将符合依赖关系的对象通过属性(setter等)或者构造函数来传递给需要的对象。

    3. 举例:找对象,传统的方法,我们到处去找符合各种条件的对象,然后打听他们的兴趣爱好,想办法认识他们,最后和他们在一起结婚。容器的思想是,存在一个婚姻介绍所,他管理了很多对象的资料。我们先向婚姻介绍所提供一个列表,告诉他我对对象的各种要求,婚姻介绍所会为我们筛选出符合这些条件的对象,如果提供的对象不符合我的条件,那么抛出异常。

    在这里:整个过程不再由我控制,而是由婚姻介绍所这样一个类似容器的机构来控制。

    4. 概述而言,Spring:所有的类都在Spring容器中登记,告诉他你是个什么东西,需要什么东西。然后Spring再系统运行到适当的时候,就把你需要的东西给你,同时把你给其他需要你的东西。所有类的创建、摧毁都由Spring控制。也就是说,控制对象生存周期的不再是引用它的对象,而是spring。

    其实,我们可以把IoC看做是工厂模式的升华,IoC好比是一个大工厂,只不过在这个大工厂里生成的对象都是在XML文件中定义的,然后利用Java的反射实例化。在没有Spring之前我们也是这么做的,只是Spring的IoC更加强大完善。

    5. 缺点:

    1、使用反射变成,在效率上有些损耗。

    2、缺乏更加智能的IDE,写XML中时,错误不容易暴露,推迟到运行期才能发现。

    但相对于IoC提高的维护性和灵活性来说,这点缺点又显得微不足道

    6. 面试的考点:

    • 对IOC和AOP的理解
    • 应用场景

    二. IoC的实现

    1. bean:

    bean是Spring管理的基本单位,在基于Spring的Java EE应用中,所有的组件都被当成Bean处理,包括数据源、hibernate的SessionFactory、事务管理器等。例如我们可以设置一个bean如下:

    <bean name = "testSpring" class = com.sbw.spring.TestSpring>
    </bean>
    
    //设置别名:
    <alias name = "testSpring" alias = "test"/>
  • 相关阅读:
    来谈谈JAVA面向对象
    手把手的SpringBoot教程,SpringBoot创建web项目(一)
    【Java框架型项目从入门到装逼】第十五节
    印章文字识别
    《图像处理实例》之 曲线之间距离求解
    机器学习常用模块
    Ubutu16.04+Cuda9.2/9.0+Cudnn7.12/7.05+TensorFlow-gpu-1.8/1.6
    滑动平均模型原理+源码分析
    AlexNet实践
    TensorFlow NormLization
  • 原文地址:https://www.cnblogs.com/lesleysbw/p/6254186.html
Copyright © 2020-2023  润新知