Spring基本概念理解

  要深入理解Spring,需要理解其几个基本的概念也算是其核心思想吧——IoC、DI、AOP。

  一、IOC 控制反转

    什么是IoC?创建对象的权利反转给框架,不需要我们自己new对象了,我们丧失了创建对象的权利,但是也得到了福利,不需要我们来管理对象了——即以失去对象一系列控制器获得更多精力关注业务逻辑。

    IoC解决什么问题?解决对象之间耦合问题。没有IoC概念之前,对象什么时候用什么时候创建;可能一个对象的创建涉及其他为创建的对象,就需要将为创建的对象先创建出来。如果对象依赖层次较多,那就是个比较深的耦合了。IoC将用到的对象一次性创建并放置到啊第三方容器中,用户直接使用而不需要关注new到destroy的对象生命周期全过程。

    什么是DI?IOC和DI的区别?DI依赖注入,其与IOC是同一件事情不同角度的描述。同一件事就是new对象并放置到容器中。不同角度个人理解IoC从使用者角度——用到的对象都new并放置于容器中;而DI是从配置文件角度——配置文件中配置了给定需要new的对象,但是这些对象依赖的对象可能并没有在配置文件中那么Spring会自动识别这些对象同时new对象并放置在容器中。

  二、AOP 面向切面编程

    对于AOP专业术语太多同时比较抽象,可能并不好理解。可以将抽象实例化为生活中的场景:抽刀断水水更流——立体的水柱就是一个正在运行的系统,刀就是AOP,被断的地方没有断反而增强了功能“更流”

    横切逻辑:多个纵向流程中出现的重复子流程逻辑

    本质:在不改变原有业务逻辑代码的情况下,增强横切逻辑,避免横切逻辑代码重复

    为什么叫面向切面编程?
      切:横切逻辑,原有业务逻辑不能动
      面:横切代码影响的往往是很多方法,构成了一个面。

 

上一篇:[ACM]前缀和 & 差分 & 位运算 & Hash函数


下一篇:java acm练习题