博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AOP与IOC的概念
阅读量:5335 次
发布时间:2019-06-15

本文共 935 字,大约阅读时间需要 3 分钟。

  • IOC(Inversion Of Control,控制反转)
IOC它不是
技术,而是一种设计思想,是spring的核心。
控制:IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制,spring容器控制了对象,主要是控制了外部资源的获取。类的创建、销毁都由 spring容器来控制
反转:在传统编程中,我们手动创建对象,而在IOC中是容器帮我们创建并注入对象,容器帮我们查找和注入对象,对象是被动注入的,叫反转
IoC对编程带来的最大改变不是从代码上,而是从思想上,发生了“主从换位”的变化。应用程序原本是老大,要获取什么资源都是主动出击,但是在IoC/DI思想中,应用程序就变成被动的了,被动的等待IoC容器来创建并注入它所需要的对象。
 
  • DI(Dependency Injection,依赖注入)
IoC和DI是同一个概念的不同角度描述,控制反转概念比较含糊,而依赖注入较明确;
依赖:应用程序依赖于spring容器
注入:spring容器为应用程序注入某个对象,spring容器通过反射来实现注入
 
  • AOP(Aspect Oriented Programming,面向切面编程)
AOP是Spring提供的关键特性,Spring的AOP为动态AOP,
AOP就是在某一个类或方法执行前后打个标记,声明在执行到这里之前要先执行一段特定代码,执行完这里之后要接着执行另一段特定代码,所以AOP把一些公共特定代码块封装成切面(切面=代码块=横向关注点),切面与业务逻辑无关,要执行的这些特定代码是插拔式的。
为什么用AOP:方便你偷懒,把一些事情交给程序做;让代码逻辑更清晰,让业务逻辑关注业务本身而不是其他乱七八糟的东西(如安全,事物,日志)
连接点:你想在执行某个方法的前后执行一段特定代码,这个方法的前后就是连接点(spring只支持方法连接点)
切入点:假若你有很多方法的前后都需要执行特定代码,即你有很多个连接点,但现在你变卦了,只想在指定的一个方法前后执行特定代码,就可用切点指定这个方法,让切入点来筛选连接点,选中你想要的方法。

转载于:https://www.cnblogs.com/afei1759/p/11062303.html

你可能感兴趣的文章
Data Structure 基本概念
查看>>
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
Swift和OC混编
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享
查看>>
分层图最短路【bzoj2763】: [JLOI2011]飞行路线
查看>>
linux下编译复数类型引发的错误:expected unqualified-id before '(' token
查看>>
codeforces 1041A Heist
查看>>
字典常用方法
查看>>
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
查看>>
bzoj1048 [HAOI2007]分割矩阵
查看>>
Java中的编码
查看>>
PKUWC2018 5/6
查看>>