Spring框架的灵魂IOC和AOP
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相关推荐
- 请解释下Spring 框架中的IOC 容器?
Spring 中的org.springframework.beans 包和org.springframework.context 包构成了Spring 框架IOC 容器的基础. BeanFactory ...
- Spring框架介绍和IOC介绍
一.Spring简介 1.什么是Spring?作用有什么? Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的. Spring使用基本的JavaBea ...
- @select注解_SSM框架(十三):Spring框架中的IoC(3)新注解,完全摆脱xml文件
spring中的新注解 1.Configuration 作用:指定当前类是一个配置类 细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以 ...
- @kafkalistener中id的作用_SSM框架(十一):Spring框架中的IoC(1)
控制反转 IOC: 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Depende ...
- Spring框架中的核心技术之AOP
目录 1. 什么是AOP? 2. 实现AOP技术的框架有哪些? 2.1 Spring框架中的AOP技术 2.2 Aspectj框架 2.3 小结 3. Aspectj框架中的使用AOP的方式 4. A ...
- Java轻量级业务层框架Spring两大核心IOC和AOP原理
IoC(Inversion of Control): IOC的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器负责将这些 ...
- Spring框架02(IOC和DI)
目录 spring中的IOC和DI 1. BeanFactory 容器 2. ApplicationContext 容器 1)ClassPathXmlApplicationContext 2)File ...
- Spring 框架核心概念IoC 随笔
IoC = DI(Dependency Injection ) + 生命周期钩子事件 + 外部配置 ... IoC核心设计模式 Factory 模式和 Observer 模式,强制使用 依赖注入 模式 ...
- java 轻量级 job_oxygen: 一个轻量级Java框架,包含ioc、aop、config、cache、job、Jdbc、web等...
oxygen 轻量级Java框架 介绍 一个轻量级Java框架 oxygen-core 配置管理,支持${attrs.key:defaultValue}表达式获取配置 加解密管理,提供加解密服务内置基 ...
最新文章
- 21世纪初最有影响力的20篇计算机视觉期刊论文
- UNILEVER STUDENT PROJECTS EVENT
- Java PECS
- 结队项目之需求分析与原型设计
- 微信小程序:背景图片在电脑可以显示,真机测试时无法显示
- [Windows编程] 通过GetModuleHandleEx 得到函数调用者所在的DLL/EXE 原创陈本峰2009-02
- linux运维选择题,初学Linux练习题
- 前端学习(2512):组件注册
- Docker 容器 和 虚拟机 的异同
- 海淀区第九届单片机竞赛获奖名单_第十二届程序设计竞赛暨ACM选拔赛获奖名单...
- 那些在大厂做外包的测试工程师,后来发展怎么样了?
- Java常用框架简介
- 下面不属于使用工具的潜在收益的是哪个_电子商务概论习题集
- 实训三:交换机恢复出厂设置以及基本配置
- android qq 邮箱格式,qq邮箱怎么填写格式 qq邮箱格式写法介绍
- iview表格序号1,2,3,4,5
- “黎明”号新任务继续“锁定”谷神星
- java8_我是如何优雅的使用Optional的
- 浅析提高倾斜摄影超大场景的三维模型轻量化的数据质量关键技术
- 纯真数据库理解及根据IP定位地区
热门文章
- ECLIPSE3.2安装 + 汉化 + 配置SWT DESIGNER6.2.0
- ASP.net 2.0 Migrating系列 - Master Pages 感触
- Spring使用webjar
- 第一阶段用户模板和场景
- python运维开发之第十一天(RabbitMQ,redis)
- 若所有的参数皆需要类型转换——请为此采用non-member函数
- ZOJ 3597 Hit the Target! (线段树扫描线 -- 矩形所能覆盖的最多的点数)
- explain的讲解
- linux 系统管理命令整理
- 视频直播技术详解(2)采集