SpringIOC 和AOP 的理解

IOC(含义、举例、作用):控制反转,是一种设计思想,将原本需要自己手动创建的对象交由Spring框架来管理。(对象A需要对象B,原本是需要A自己创建对象B,现在反转了,对象的创建由Spring框架来完成,并在特定的时候提供给对象A。IOC,把自己创建对象反转成交给程序帮忙创建对象。)IOC是通过依赖注入(DI)实现的。
依赖注入(Dependency Injection)
它是Spring框架核心IOC的具体实现。
业务层和持久层的关系,在使用Spring后,就交由spring来维护。
DI原理
在运行期间由容器将依赖关系注入到组件之中,即在运行期间,由Spring根据配置文件,将其他对象的引用通过组件提供的setter方法进行设定。
数据类型
能注入的类型有三类:

  1. 基本类型和String
  2. 其他bean类型(在配置文件或注解中配置过的Bean)
  3. 复杂类型/集合类型

SpringAOP
面向切面编程——生成动态代理对象(Proxy),使用配置文件配置即可。
代理对象Proxy——即访问对象不会再直接去访问,而是通过代理对象间接访问。
例如:总经理A要让新来的员工C来做一件事,A可以直接去找C的小组长B,让B去吩咐C即可,C只需要专注地做自己的事情+听小组长B的吩咐即可,不需要在干别的事情。
动态代理目的——对原有对象进行代码增强。
Spring实现AOP的两种原理:
1.动态代理
动态代理的要求:被代理的对象,即目标对象(Target)必须实现接口,否则不能实现动态代理技术。
2.cglib
可以对任何类进行代理,但必须对Target进行继承,如果Target被final修饰,则不能被cglib代理。
这两种代理混合使用,如果目标对象Target实现接口,则优先使用动态代理,否则cglib
Spring中经常用到的几个名词
JoinPoint(连接点):指目标对象中可以增强的方法。
PointCut(切入点):指目标对象中以及增强的方法。
Advice(通知/增强):指增强的代码。
Target(目标对象):被代理的对象。
Weaving(织入):将通知应用到连接点形成切入点的过程。
Proxy(代理):将通知织入到目标对象,形成代理对象。
Aspect(切面):切入点+通知。

借鉴自:帅气博主

SpringIOC 和AOP 的理解相关推荐

  1. springIOC和AOP的理解

    Spring的IOC理解 1.IOC 控制反转,是指创建对象的控制权转移,以前创建对象的主动权和时机是由自己把控的,而现在这种权力转移到spring容器中,并由容器根据配置文件去创建实例和管理各个实例 ...

  2. 手写springIOC、AOP

    手写springIOC.AOP 一.核心思想 1.IoC 1.1 什么是IoC? 1.2 IoC解决了什么问题 1.3 IoC和DI的区别 2.AOP 2.1 什么是AOP? 2.2 AOP解决的什么 ...

  3. IOC和AOP概念理解

    IOC和AOP概念理解总结: IOC:控制反转 是一种降低对象之间耦合关系的设计思想,面试的时候最好能说出来个例子,加深理解.例子:租房子,以前租房子需要一个房子一个房子找,费时费力,然后现在加入一个 ...

  4. Spring框架:谈谈对IOC和AOP的理解

    在java面试中,如果我们被问及Spring框架的相关问题,那么一定避不开对Spring中的IOC和AOP的理解和使用,本文就简单谈论对于Spring中IOC和AOP的理解. 一.IOC的理解 1.1 ...

  5. spring框架AOP的理解,程序高类聚的体现

    本文主要介绍AOP思想,而不是Spring,Spring在本文只做为理解AOP的工具和例子,所以也不打算介绍Spring的Aspect.Join point.Advice.AOP proxy等概念,那 ...

  6. 对IOC,AOP的理解

    (1)  ioc,意思是Inversion of control,(反转控制),控制反转,就是交换控制权的意思.现在一般不使用这个词,一般使用dependency injection(依赖注入).依赖 ...

  7. Spring AOP概念理解 (通俗易懂)【转】

    1.我所知道的aop 初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等.一下子让你不知所措,心想着:怪不得很多人都和我说aop多难多难.当我看进去以后 ...

  8. Spring的IoC与AOP的理解

    1.Spring它到底是什么? Spring是一个开源的Java应用程序开发框架,为了解决企业应用开发的复杂性而创建的.   在spring中,它会认为一切Java类都是资源,而资源就是Bean,容纳 ...

  9. SpringIOC、AOP

    IOC和AOP是Spring的两大核心 IOC Inversion Of Control控制反转,控制反转通过DI(Denpendency Inject依赖注入)实现. Spring可以理解为一个容器 ...

最新文章

  1. 7、MySQL数据类型的选择
  2. 废旧纸箱做机器人图片_网购后的快递纸箱被你扔掉了吗?
  3. optional空值判断_Java 8 Optional不仅用于替换空值
  4. 【渝粤题库】陕西师范大学200041 文学概论 作业
  5. Creating a Pulsing Circle Animation
  6. dijkstra+priority_queue+vector
  7. python两个等号和一个等号_Python-一个变量等于另一个变量
  8. 外边距合并(HTML、CSS)
  9. 视频编解码(九):FFMPEG操作总结一
  10. IDEA java 中文乱码解决方法
  11. 印章如何去蜡_PS怎么制作蜡封印章的效果?
  12. 计算机无法同步,win7系统电脑无法同步时间的解决方法
  13. 微信小程序之模板的使用
  14. 图片如何高清修复?高清修复图片的方法
  15. android 网络运营商的名字显示规则(锁定屏幕,下拉列表)
  16. Action Recognition Using Attention-Joints Graph Convolutional Neural Networks翻译
  17. Dropbear替代Openssh-ssh client使用
  18. ROS2原始数据类型与接口
  19. 线程同步(临界区、互斥量、事件、信号量)
  20. 单机玩转神经网络架构搜索(NAS) - Auto-Keras学习笔记

热门文章

  1. 全链路实时监控--istio
  2. QTP自动化测试权威指南(第二版)
  3. SVG动态绘制不规则图形
  4. Windows10系统最强大版本是哪个
  5. Linux mem 2.2 内核地址空间布局详解
  6. python获得屏幕分辨率多少合适_获取显示计数和Python中的每个显示器的分辨率不xrandr...
  7. EasyUI combotree树组件无限循环,获取每个的最后节点
  8. pictureselector 压缩_GitHub - HobertHe/PictureSelector-1: 仿微信、QQ图片选择器(自带图片压缩,裁剪)...
  9. 那些利用假期学习的职场人,后来都怎么样了?
  10. 曲面屏手机之战:不再直的手机朝哪弯?