Ioc(控制反转)

所谓的控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。

AOP(面向切面编程)

AOP(Aspect Orient Programming),即面向方面编程。AOP技术给人们提供了一个崭新的视角分析和设计软件系统。AOP引入了分离关注点形成模块化的机制来解决横切关注点的问题。所谓的关注点指的是一个特定的概念、目标或可实现域。系统正是由一组关注点组成,典型的软件系统由多个系统级关注点和核心级关注点组成。核心关注点指业务处理的主要过程,而系统级关注点是与核心业务无关,一般横切多个核心关注点,为这些核心关注点提供服务,如日志记录,安全检测、事务处理等。AOP和OOP互为补充,从两种不同的角度去认识事物。传统的OOP[4lJ编程是以对象为核心,系统由一系列相互依赖的对象组成,抽象的封装好这些对象的属性和行为,使得这些对象可以相互协作的完成特定的业务逻辑,从而完成一个完整的应用系统。但随着软件系统的不断扩大,系列化分工越来越细,对跨越多个模块的行为进行建模是,OOP暴露出了一些无法很好解决的问题。OOP的核心是采用的纵向结构去完成业务逻辑(也可理解为关注点),很多不同模块可能具有相同的关注点(横切关注点),OOP处理起来较为繁琐,模块间的耦合度大,后期维护和扩展比较困难。AOP的核心是允许我们独立的完成一个个关注点,然后以一种松耦合的方式把这些单独的关注点编织成一个完整的系统,形成了一种模块化横切关注点的方式。与OOP相对,AOP采用的是横向结构,例如,多个模块具有某个相同操作,这个操作就可以视为系统中的一个“横切关注点”。简单地说,AOP就是将那些与业务无关,却为业务处理模块共同服务的诸如并发访问控制的一些系统关注点(通用的功能需求),从不相关的的类之间分离出来,在某个地方集中编写,组织和维护,并可以通过如AspectJ等工具将它们织入到系统出供业务对象使用。这是系统建模中抽象层次的进一步提升,可以得到结构清晰、模块化强、代码问耦合度低、易于重用和维护的系统。

转载于:https://www.cnblogs.com/fifiyong/p/6388806.html

Spring核心--IOCAOP相关推荐

  1. Spring核心——IOC处理器扩展

    为什么80%的码农都做不了架构师?>>>    非侵入式框架 Spring一直标注自己是一个非侵入式框架.非侵入式设计的概念并不新鲜,目标就是降低使用者和框架代码的耦合,毕竟框架的开 ...

  2. spring核心功能结构

    spring核心功能结构 Spring大约有20个模块,由1300多个不同的文件构成.这些模块可以分为: 核心容器.AOP和设备支持.数据访问与集成.Web组件.通信报文和集成测试等, 下面是 Spr ...

  3. 小马哥spring编程核心思想_Spring源码高级笔记之——Spring核心思想

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

  4. 自己实现spring核心功能 一

    聊聊spring spring对于java开发者来说,是最熟悉不过的框架了,我们日常开发中每天都在使用它.它有着各种各样的好处,简单易用,得心应手... ... 我们一说到spring就会讲到ioc ...

  5. Spring核心之对 IOC的理解

    Spring核心之对 IOC的理解 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 一 .IOC IOC : Inversion of Control,中文译为" ...

  6. spring核心功能包中已经包含了cglib功能

    spring核心功能包中已经包含了cglib功能,所以不需要额外再引入cglib jar包 如下图所示: 也要思考一个问题,既然spring核心功能包里已经自带了cglib了,那么如果外部需要用到不同 ...

  7. spring核心配置文件引入外部properties文件和另外的xml配置文件

    spring核心配置文件引入外部properties文件和另外的xml配置文件 为什么要引入外部文件 我们使用jdbc的时候,会创建一个jdbc.properties配置文件,如果我需要在spring ...

  8. Spring核心注释

    介绍: org.springframework.beans.factory.annotation和org.springframework.context.annotation包中存在的Spring注释 ...

  9. java 切面_Java笔试面试精心整理得到89道Spring 核心知识【收藏向】

    点击上方"蓝字",关注了解更多 Spring Framework 简称 Spring,是 Java 开发中最常用的框架,地位仅次于 Java API,就连近几年比较流行的微服务框架 ...

最新文章

  1. jquery的each()详细介绍
  2. 20145227《信息安全系统设计基础》第一周学习总结
  3. okta使用_使用Okta的单点登录保护您的Vert.x服务器
  4. leetcode1052. 爱生气的书店老板(滑动窗口)
  5. Spring精华问答 | Spring框架有哪些主要模块?
  6. C 语言实例 - 二进制与十进制相互转换
  7. 深入.NET平台和C#编程笔记 第七章 深入理解多态
  8. LeetCode(500)——键盘行(JavaScript)
  9. azure备份存储层分类_备份到Azure –为什么要这样做?
  10. 解决VS2003查询卡死的问题
  11. 易班php,易班PHP-SDK开发
  12. 关于CAB打包的步骤
  13. 【CameraX】Android CameraX 综述
  14. 在纯Win10环境下部署DzzOffice+OnlyOffice协同办公系统
  15. spring boot对外部文件的访问
  16. 有度即时通系统安全技术原理
  17. 机器学习之GD、SGD
  18. ISCC 2022 wp
  19. Mac下代码中文乱码问题解决方法
  20. MPLS原理和配置实验

热门文章

  1. matlab与音频处理
  2. 在VMware虚拟机下安装ubuntu16.04,及hackrf one环境配置
  3. 文件内容查找java,java库从文件内容中查找mime类型
  4. vue 给标签添加data属性_vue之data属性
  5. python编程人脸识别工具_几行代码带你实现人脸识别。Python 就是这么简单
  6. wordpress怎么设置文章页面不打开新的窗口_2019 WordPress外贸网站SEO优化基础设置(新手图文教程)...
  7. qt qtableview 刷新列表_qt qtablewidget 刷新
  8. python重命名文件或目录_Python重命名多个文件的实例方法
  9. python快速排序解析_快速排序python实现总结
  10. java中的排序算法——简单选择排序,树形选择排序与堆排序(一)