什么是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 ...
最新文章
- svn 常见问题记录
- 在已创建的DataTable对象中添加在首列一列
- 【leetcode 简单】 第五十五题 打家劫舍
- CTF之一次曲折获取Flag的过程
- 90后女博士任985高校特聘教授,这次有点不一样
- Java、JavaScript、C、C++、PHP、Python都是用来开发什么?赶紧来看看!
- 易优Eyoucms企业建站系统 1.4.2
- docker on spark
- 处理Windows快捷键占用冲突
- ThreadLocal介绍和源码解析
- 我的编程经历与我所热爱的游戏服务端开发
- 项目经理,你有什么优势吗?
- 勿以恶小而为之,勿以善小而不为
- 网易互联网雷火互娱22届校招及社招内推
- 10个最好的免费PS图象处理软件方案
- 深度学习实例第四部分:PaddlePaddle
- 手写一个垂直领域的搜索引擎
- Spine 骨骼动画查看器 Skeleton Viewer_官方文档中文版
- 最好的投资是自己,有关怎样投资自己
- docker部署nginx+tomcat架构
热门文章
- C 怎么处理windows路径_在Windows中使用msix打包工具监视注册表和文件
- 2019上半年中小学教资考试教育知识与能力试题(中学)——主观题
- 安兔兔html5 6sp,除了安兔兔跑分,还有这6种办法能证明手机强弱
- OPPO Enco Free2质量怎么样?降噪表现突出路上不怕吵
- ipython和pylab模式_matplotlib集成与pylab模式
- 为什么要用kubernetes
- Apollo:源码分析之cyber\blocker\blocker.h
- 新北洋SNBC U300t3 打印机驱动
- 如何写周报 方法 思考
- 使用ADB安装apk安装包