Spring的两大特征和事务管理

@作者博客

Spring 两大特性

IOC控制反转

  • IOC是什么?
    • IOC是一种思想,是一个重要的面向对象编程的体现之一

    • 传统的应用程序是由我们在类的内部主动创建依赖对象,从而导致类与类之间高耦合,测试也繁琐. 相对于IOC而言,它是把创建和查找依赖对象的控制器交给了容器,有容器进行注入组合对象,所以对象与对象之间是,低耦合的,便于测试,而且也使得整个体系架构变得更灵活

    • IOC的面向对象思想就好像 ,百度百科上对这点描述是“不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)”这是著名的好莱坞原则;
      其实说简单一点,就是对象找依赖并注入,而不是对象自己主动去找

  • IOC依赖注入
    • 在控制反转中获取资源的过程叫做依赖注入
      • 构造器注入:
              这种方式的注入是指带有参数的构造函数注入
              在XML文件中 配置注入对象
      
      • setter注入
          * 要写被注入对象的Set方法
          * 在XML中配置 ,要注入的具体对象(是由Spring管理的对象) 
          * 在Spring的xml配置文件中,配置相关的Bean(也叫托管),由Spring来管理对象
          * 也是在配置好 Bean 以后,由Spring自动注入
      

AOP面向切面编程

(可以说是,补全了OOP(面向对象编程)的不足的地方)

  • 举个例子,日志功能,它往往是遍布在所有对象层中,而它又在核心功能中毫无关系,这种被散布在各处无关的代码 被称为横切,在oop设计中,它导致了大量代码的重复;

  • AOP技术却相反,它利用一种 叫 "横切"的技术,解剖开封装的对象内部,并将影响了多个类的公共行为封装到一个版块,这个版块叫 "Aspect(啊死拜)",又称切面.

  • 切面,简单的说,就是那些与业务无关的,却又不可少的那一部分,封装起来,减少系统的重复代码,减低各个版块直接的耦合度,有利于维护和可操作性

  • AOP把软件系统分为两个部分:核心关注点和横切关注点

    • 业务处理的主要流程是核心关注点
    • 与之关系不大的部分是横切关注点

AOP核心概念

  • 横切关注点
  • 切面(aspect)
  • 连接点(joinpoint)
  • 切入点(pointcut)
  • 通知(advice)
  • 目标对象
  • 织入(weave)
  • 引入(introduction)

声明式事务管理

  • 声明式事务管理建立在AOP之上的
    • 其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务

    • 声明式事务最大的优点就是不需要在代码中写管理事务的代码
      只需在配置文件中声明和配置事物管理即可(或通过基于@Transactional注解的方式)

思维图如下:

@作者博客
Srping 两大特性以及事物管理

你可能感兴趣的:(Spring的两大特征和事务管理)