2019独角兽企业重金招聘Python工程师标准>>>

关键词 名称 模式 实现方式
IOC 依赖注入或控制反转 工厂模式 sessionfactory注入
AOP 面向切面编程 代理模式  

代理模式

代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。

spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分。

依赖注入和控制反转(Ioc)

在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例。但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC);创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也被称为依赖注入(DI), 依赖注入和控制反转是同一个概念 。

将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用A的setter方法来注入,而不需要你在A里面new这些bean了。

面向切面编程(AOP:Aspect-Oriented Programming)

AOP可以说是对OOP(面向对象编程Object Oriented Programming)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。

将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。

AOP实现方式

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

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

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

转载于:https://my.oschina.net/idea813/blog/1582256

Spring框架的灵魂IOC和AOP相关推荐

  1. 请解释下Spring 框架中的IOC 容器?

    Spring 中的org.springframework.beans 包和org.springframework.context 包构成了Spring 框架IOC 容器的基础. BeanFactory ...

  2. Spring框架介绍和IOC介绍

    一.Spring简介 1.什么是Spring?作用有什么? Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的. Spring使用基本的JavaBea ...

  3. @select注解_SSM框架(十三):Spring框架中的IoC(3)新注解,完全摆脱xml文件

    spring中的新注解 1.Configuration 作用:指定当前类是一个配置类 细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以 ...

  4. @kafkalistener中id的作用_SSM框架(十一):Spring框架中的IoC(1)

    控制反转 IOC: 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Depende ...

  5. Spring框架中的核心技术之AOP

    目录 1. 什么是AOP? 2. 实现AOP技术的框架有哪些? 2.1 Spring框架中的AOP技术 2.2 Aspectj框架 2.3 小结 3. Aspectj框架中的使用AOP的方式 4. A ...

  6. Java轻量级业务层框架Spring两大核心IOC和AOP原理

    IoC(Inversion of Control): IOC的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器负责将这些 ...

  7. Spring框架02(IOC和DI)

    目录 spring中的IOC和DI 1. BeanFactory 容器 2. ApplicationContext 容器 1)ClassPathXmlApplicationContext 2)File ...

  8. Spring 框架核心概念IoC 随笔

    IoC = DI(Dependency Injection ) + 生命周期钩子事件 + 外部配置 ... IoC核心设计模式 Factory 模式和 Observer 模式,强制使用 依赖注入 模式 ...

  9. java 轻量级 job_oxygen: 一个轻量级Java框架,包含ioc、aop、config、cache、job、Jdbc、web等...

    oxygen 轻量级Java框架 介绍 一个轻量级Java框架 oxygen-core 配置管理,支持${attrs.key:defaultValue}表达式获取配置 加解密管理,提供加解密服务内置基 ...

最新文章

  1. 21世纪初最有影响力的20篇计算机视觉期刊论文
  2. UNILEVER STUDENT PROJECTS EVENT
  3. Java PECS
  4. 结队项目之需求分析与原型设计
  5. 微信小程序:背景图片在电脑可以显示,真机测试时无法显示
  6. [Windows编程] 通过GetModuleHandleEx 得到函数调用者所在的DLL/EXE 原创陈本峰2009-02
  7. linux运维选择题,初学Linux练习题
  8. 前端学习(2512):组件注册
  9. Docker 容器 和 虚拟机 的异同
  10. 海淀区第九届单片机竞赛获奖名单_第十二届程序设计竞赛暨ACM选拔赛获奖名单...
  11. 那些在大厂做外包的测试工程师,后来发展怎么样了?
  12. Java常用框架简介
  13. 下面不属于使用工具的潜在收益的是哪个_电子商务概论习题集
  14. 实训三:交换机恢复出厂设置以及基本配置
  15. android qq 邮箱格式,qq邮箱怎么填写格式 qq邮箱格式写法介绍
  16. iview表格序号1,2,3,4,5
  17. “黎明”号新任务继续“锁定”谷神星
  18. java8_我是如何优雅的使用Optional的
  19. 浅析提高倾斜摄影超大场景的三维模型轻量化的数据质量关键技术
  20. 纯真数据库理解及根据IP定位地区

热门文章

  1. ECLIPSE3.2安装 + 汉化 + 配置SWT DESIGNER6.2.0
  2. ASP.net 2.0 Migrating系列 - Master Pages 感触
  3. Spring使用webjar
  4. 第一阶段用户模板和场景
  5. python运维开发之第十一天(RabbitMQ,redis)
  6. 若所有的参数皆需要类型转换——请为此采用non-member函数
  7. ZOJ 3597 Hit the Target! (线段树扫描线 -- 矩形所能覆盖的最多的点数)
  8. explain的讲解
  9. linux 系统管理命令整理
  10. 视频直播技术详解(2)采集