什么是Spring IoC 和 AOP?
前言
IoC 是 Spring 全家桶各个功能模块的基础,是创建对象的容器。AOP 也是以 IoC 为基础,AOP 是面向切面编程,抽象化的面向对象。
Spring IoC:
Spring IoC实现控制反转,将对象的创建进行反转。常规情况下,对象都是开发者手动创建的;而使用 IoC 后,开发者不再需要创建对象,而是由 IoC 容器根据需求自动创建项目所需要的对象。可理解为工厂。
实现的方式:
(1)基于XML方式:开发者把需要的对象在 XML 中进行配置,Spring框架读取这个配置文件,根据配置文件的内容来创建对象
(2)基于注解:
1、配置类:用一个 Java 类来替代 XML 文件,把在 XML 中配置的内容放到配置类中。
2、扫包+注解:更简单的方式,不再需要依赖于 XML 或者配置类,而是直接将 bean 的创建交给目标类,在目标类添加注解来创建
具体的实现方式另查,个人觉得还是扫包+注解更加方便。
Spring AOP
AOP是面向切面编程,是一种抽象化的面向对象编程,对面向对象编程的一种补充,底层使用动态代理机制来实现。多用于:
1、打印日志
2、事务
3、权限处理
作用:AOP实现了高内聚、低耦合,在切面集中实现横切关注点(缓存、权限、日志等),然后通过切点配置把代码注入到合适的位置。
比如在所有的事务的开始和结束都要打印一次日志,就可以使用AOP技术将打印日志的行为抽出去进行统一处理。
什么是Spring IoC 和 AOP?相关推荐
- 自己动手实现的 Spring IOC 和 AOP - 下篇
1. 背景 本文承接上文,来继续说说 IOC 和 AOP 的仿写.在上文中,我实现了一个很简单的 IOC 和 AOP 容器.上文实现的 IOC 和 AOP 功能很单一,且 IOC 和 AOP 两个模块 ...
- 自己动手实现的 Spring IOC 和 AOP - 上篇
1. 背景 我在大四实习的时候开始接触 J2EE 方面的开发工作,也是在同时期接触并学习 Spring 框架,到现在也有快有两年的时间了.不过之前没有仿写过 Spring IOC 和 AOP,只是宏观 ...
- Spring IoC 和 AOP
Spring IoC 和 AOP spring框架java开发的行业标准. spring全家桶. Web:Spring Web MVC/Spring MVC,Spring Web Flux 持久层:S ...
- 【Spring 源码阅读】Spring IoC、AOP 原理小总结
Spring IoC.AOP 原理小总结 前言 版本约定 正文 Spring BeanFactory 容器初始化过程 IoC 的过程 bean 完整的创建流程如下 AOP 的过程 Annotation ...
- 浅谈 Spring IOC和AOP
浅谈 Spring IOC和AOP IOC 控制反转 以前创建对象的主动权和时机是由于自己把握的,现在将这种权利转移到Spring容器中,并且根据配置文件去创建对象管理对象 ioc的注入方式有三种:构 ...
- BeanPostProcessor —— 连接Spring IOC和AOP的桥梁
之前都是从大Boss的视角,来介绍Spring,比如IOC.AOP. 今天换个视角,从一个小喽啰出发,来加深对Spring的理解. 这个小喽啰就是, BeanPostProcessor (下面简称 B ...
- Spring IOC 和 AOP 概览
IOC(控制反转) IoC(Inversion of Control,控制倒转).所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系. 在没有IOC时,我们 ...
- spring - ioc和aop
1.程序中为什么会用到spring的ioc和aop 2.什么是IOC,AOP,以及使用它们的好处,即详细回答了第一个问题 3.原理 关于1: a:我们平常使用对象的时候,一般都是直接使用关键字类new ...
- 再品Spring Ioc 和 Aop
文章目录 Spring好处 IOC 基于XML和基于注解开发 基于XML开发 基于注解开发 配置类 扫包+注解 依赖注入 AOP 写在前面,这篇文章写的时候我的SSM已经学过一遍了,回头来看真的受益匪 ...
- 吊打面试官系列之--吃透Spring ioc 和 aop (中)
目录 Spring SpringBean的五个作用域 SpringBean的生命周期 创建过程 销毁过程 AOP的介绍和使用 AOP的介绍 AOP的三种织入方式 操作讲解 AOP的主要名词概念 Adv ...
最新文章
- UITableView属性 自己定义UITableViewCell
- 【Java8精华教程】一起爪哇Java8——好用的Stream
- mitmdump 脚本使用python第三方包方法(报错:in script xxx.py: No module named ‘xxx‘)
- 1.7 Java字符流的使用:字符输入/输出流、字符文件和字符缓冲区的输入/输出流
- Eclipse中tomcat更改部署路径 deply path
- oracle内外链接混合用,混合在一起通过连接,内部连接和总结与Oracle
- 10.1-控制单元CU的组合逻辑设计
- 小程序沉浸式_古北水镇红叶祭嵌入戏精学院 全新文旅沉浸模式让游客嗨起来...
- Linux系统基本概念
- java8 stream().map().collect()用法
- 探讨IOS应用在中国的盈利模式
- vs快速添加引用解析的快捷键
- 看完这篇还不了解Nginx,你来找我!
- Atitit 知识管理之 经济学概论 attilax 学习心得
- Linux系统上QQ闪退的问题
- postman下载文件
- 用机器学习做风控的氪信,凭什么获金牌投资人章苏阳数千万融资?
- 把这本书讲给更多人(中):两次历史上著名的谋杀案?
- 半导体器件物理【4】晶胞晶格晶面晶向
- 一代神机 iPhone 6s 也终于到了“剧终之日”,下一个“钉子户机型”将会是谁