zoukankan      html  css  js  c++  java
  • Spring IOC 和 AOP

    一.  IOC

      1. 概念及原理

      IOC: Inversion of Control(控制反转)是一种设计思想,就是容器控制应用程序所需要的外部资源的创建和管理,然后将其反转给应用程序.对象及其依赖对象的创建及维护都不需要在应用程序中实现,将其交给IOC容器去管理.传统的开发中,我们自己在对象内部创建依赖对象注入当前对象,完成依赖关系的维护;对于IOC而言,他强调是将主动变为被动,由IOC容器来负责依赖对象的创建和查找,由IOC容器来进行注入组合对象,我们只需要在相关的配置文件中维护对象的依赖关系即可.

      DI: Dependency Injecton,即"依赖注入".其实IOC和DI本就是同一个概念的两种不同的表述,应用程序依赖容器提供的外部对象,容器将其依赖的外部资源在运行期注入到应用程序中;某个对象被调用时,其所依赖的对象由容器注入;

      2. 优点

      第一: 资源集中管理,实现资源的可配置和易管理,降低对象关系维护的复杂度.

      第二: 降低了使用资源双方的依赖程度,也就是我们说的耦合度.

    二.  AOP

      1. 概念

      AOP面向切面,是一种编程思想,AOP将软件系统分为两个部分,核心业务和扩展业务,在不改变原有代码的基础上,给核心业务添加扩展功能,即OCP原则.

      2. 实现方式

      实现AOP的技术,主要分为两大类:

      一  是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;

      二  是采用静态织入的方式,引入特定的语法创建"方面",从而使得编译器可以再编译期间织入有关"方面"的代码.

      3.优点

      一.  横切关注点的代码都集中于一块,而不是分散在各个业务组件中,不会出现大量代码重复;

      二.  核心模块只关注核心功能的代码,与通用模块分离,模块间耦合度降低.

     

     

  • 相关阅读:
    当 LAST_INSERT_ID() 带有参数时# 清空重来
    同时多次插入时
    插入失败时
    编译生成动态库
    编译生成可执行文件
    添加一个静态JAVA库
    添加一个预编译应用程序
    编译一个需要用特定key前面的应用程序
    自定义ItemDecoration设置分割线
    linux常见命令
  • 原文地址:https://www.cnblogs.com/gxlaqj/p/9955641.html
Copyright © 2011-2022 走看看