zoukankan      html  css  js  c++  java
  • spring核心思想:IOC(控制反转)、DI(依赖注入)和AOP(面向切面编程)

    Spring有三大核心思想,分别是控制反转(IOC,Inversion Of Controller),依赖注入(DI,Dependency Injection)和面向切面编程(AOP,Aspect Oriented Programming)。

    控制反转(IOC,Inversion Of Controller)

    控制反转不是什么技术,而是一种设计思想。在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。

    传统正转

    控制有反转,当然也就有原来的正转。正转就是说当你需要用到某一个对象的时候,就需要主动去new一个对象实例,才能够使用该对象。

    控制反转

    反转就是当你需要用到某一个对象的时候,就向Spring IOC容器发请求,由Spring IOC容器返回一个对象实例给你,即将组件之间的关系从程序内部提到外部容器来管理。

    依赖注入(DI,Dependency Injection)

    依赖注入是控制反转的具体实现。

    因为对象资源的获取全部要依赖于Spring IOC容器,组件之间的依赖关系由容器在应用系统运行期来决定,在需要的时候由Spring IOC容器动态地往组件中注入需要的实例对象就叫做依赖注入。

    面向切面编程(AOP,Aspect Oriented Programming)

    面向切面编程利用了一种称为【横切】的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用的模块,并将其命名为【切面(Aspect)】。简单的说,就是那些与业务无关,却为业务模块锁共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合,并有利于未来的可操作性和可维护性。

    利用【横切】技术,AOP把软件系统分为了两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与业务处理关系不大的部分是横切关注点。横切关注点的一个特点是,它们经常发生在核心关注点的多处,而各处基本相似,比如说权限认证、日志和事务等。AOP的作用在于分离系统中的各个关注点,将核心关注点和横切关注点分离开来。

    "因为你的固执和任性,因此我最害怕你突然会放弃。"

  • 相关阅读:
    有关类成员变量和局部成员变量初始值设置问题
    Redis在windows下安装与配置
    java内存区域-方法区
    Java中的反射机制(一)
    (转)Spring实现IoC的多种方式
    UUID
    Python os.path
    Leetcode 215、数组中第k个最大的元素
    树的非递归遍历
    About MySQL
  • 原文地址:https://www.cnblogs.com/yanggb/p/10337600.html
Copyright © 2011-2022 走看看