当前位置: 首页 > news >正文

spring 中IOC和aop的理解

为什么80%的码农都做不了架构师?>>>   hot3.png

什么是DI机制? 

依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色 

需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中 

创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者 

因此也称为依赖注入。 

spring以动态灵活的方式来管理对象 , 注入的两种方式,设置注入和构造注入。 

设置注入的优点:直观,自然 

构造注入的优点:可以在构造器中决定依赖关系的顺序。 


什么是AOP? 

面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面 

1.面向切面编程提供声明式事务管理 

2.spring支持用户自定义的切面 


面向切面编程(aop)是对面向对象编程(oop)的补充, 

面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。 

AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象, 

是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。 


aop框架具有的两个特征: 

1.各个步骤之间的良好隔离性 

2.源代码无关性 


转载于:https://my.oschina.net/ghfhg/blog/652706

相关文章:

  • keepalived which time exec track script , notify script when vrrp transition
  • 代理模式
  • java aopalliance-1.0.jar这个包是做什么用的?
  • Android客户端采用Http 协议Post方式请求与服务端进行数据交互(转)
  • Distributed3:SQL Server 创建分布式数据库
  • C#-属性
  • 2的幂的合并运算实例
  • 【curl】cookie的分隔符
  • 从零开始学数据库(一)——安装、启动、进入、创建表、检查表结构、类型说明、更改表项名、插入值...
  • Ruby之基本数据类型(三)
  • 机器学习:eclipse中调用weka的Classifier分类器代码Demo
  • 线程同步工具(一)控制并发访问资源
  • Solr schema编写指导
  • Azkaban的Web Server源码探究系列14:创建Project
  • 成都Uber优步司机奖励政策(4月11日)
  • HTTP中GET与POST的区别 99%的错误认识
  • in typeof instanceof ===这些运算符有什么作用
  • java第三方包学习之lombok
  • JSONP原理
  • markdown编辑器简评
  • PermissionScope Swift4 兼容问题
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • v-if和v-for连用出现的问题
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 阿里研究院入选中国企业智库系统影响力榜
  • 番外篇1:在Windows环境下安装JDK
  • 服务器从安装到部署全过程(二)
  • 小程序 setData 学问多
  • 自定义函数
  • 阿里云重庆大学大数据训练营落地分享
  • 选择阿里云数据库HBase版十大理由
  • ​人工智能书单(数学基础篇)
  • ​油烟净化器电源安全,保障健康餐饮生活
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (4.10~4.16)
  • (ros//EnvironmentVariables)ros环境变量
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转) 深度模型优化性能 调参
  • (转)大型网站的系统架构
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • ******之网络***——物理***
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net 无限分类
  • .Net7 环境安装配置
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .php文件都打不开,打不开php文件怎么办
  • @Autowired @Resource @Qualifier的区别
  • @EventListener注解使用说明