zoukankan      html  css  js  c++  java
  • Spring(一)核心思想

    1.1理念

      IOC和AOP不是spring提出的,在spring之前就已经存在,只不过更偏向于理论化,spring在技术层次把这两个思想做了非常好的实现(Java)

    1.2 什么是IOC

      Ioc Inversion of Controller(控制反转/反转控制),它是一个思想,不是一个技术实现,描述事情:Java开发领域对象的创建和管理问题。
    传统开发方式:比如类A依赖于类B,往往在A对象中new一个对象B
    控制:指的是对象创建(实例化、管理)的权利
    反转:控制权交给外部环境(Spring框架、IOC容器)

    1.3 Ioc和DI的区别

      理解:IOC和DI描述的是同一件事情,只不过是角度不同罢了
      Ioc:IOC是站在对象的角度,对象要创建了,就把管理的权限交给了(反转)容器
      DI:DI是站在容器的角度,容器把对象依赖的其他的对象注入,比如A对象实例化过程中因为声明了一个B类型的属性,那么容器就会把B对象注入给A

    1.4 AOP

      AOP:Aspect oriented Programming 面向切面编程,AOP是OOP的延续。OOP三大特征:封装、继承和多态
    image.png
      OOP编程思想可以解决大多数代码重复的问题,但是有一些情况是处理不了的,比如下面的情况:
    image.png

    1.5 AOP在解决什么问题

      在不改变原有业务逻辑情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复
    切:指的是横切逻辑,原有业务逻辑代码我们不能动,只能操作横切逻辑代码,所以面向横切逻辑
    面:横切逻辑代码往往要影响的是很多个放发,每个放发都如同一个点,多个点构成面,有一个面的概念在里面

    1.6 Spring优势

      1. 方便解耦,简化开发
      Spring提供IOC容器,可以将对象的依赖关系交给Spring进行控制,降低耦合度。
      2. AOP编程支持
      通过SpringAOP功能,方便进行切面编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付
      3. 声明式事务支持
      @Transactional 可以通过声明式事务进行事务管理,提高开发效率和质量。底层也是AOP动态代理来实现的。
      4. 方便集成各种优秀框架
      5. 降低JavaEE API的使用难度
      6. 源码是经典的Java学习典范

  • 相关阅读:
    Objective-C之NSArray(数组)默认排序与自定义排序
    Objective-C学习笔记之for( int )机制
    OC之NSString、NSMutableString学习笔记 常用方法
    换行回车的区别 2018-10-30
    Python头部2行 #!/usr/bin/python 和 #!/usr/bin/env 的区别 以及编码方式的指定 2018-10-23
    旧版Windows 睡眠与休眠 2018-10-18
    手机尺寸像素 PPI 2018-10-17
    VMvare 虚拟机扩容 2018-10-11
    批量判断网址能否访问 2018-10-04
    字符串的 strip()方法 2018-10-04
  • 原文地址:https://www.cnblogs.com/benjaming0321/p/12548504.html
Copyright © 2011-2022 走看看