java编程,spring里ioc和aop用什么原理实现的控制反转(IOC)
(理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”)
1、Ioc—Inversion of Control:即“控制反转”,不是什么技术,而是一种设计思想 。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制 。
2、谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象即由Ioc容器来控制对象的创建 。
谁控制谁?当然是IoC 容器控制了对象 。
控制什么?那就是主要控制了外部资源获?。ú恢皇嵌韵蟀ū热缥募龋?。
3、为何是反转 , 哪些方面反转了: 有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象 , 也就是正转;而反转则是由容器来帮忙创建及注入依赖对象 。
为何是反转?因为由容器帮我们查找及注入依赖对象 , 对象只是被动的接受依赖对象,所以是反转 。
哪些方面反转了?依赖对象的获取被反转了 。
还是不明白没事,下面搞个简单案例来说就懂啦 ?。。?
例子:当我们在任何一个有实际开发意义的程序项目中,我们会使用很多类来描述他们特有的功能,并且通过类与类之间的相互协作来完成特定的业务逻辑 。这个时候,每个类都需要负责管理与自己有交互的类的引用和依赖,代码将会变的异常难以维护和极高的高耦合 。而IOC的出现正是用来解决这个问题,我们通过IOC将这些依赖对象的创建、协调工作交给spring容器去处理,每个对象值需要关注其自身的业务逻辑关系就可以了 。在这样的角度上来看,获得依赖的对象的方式,进行了反转 , 变成了由spring容器控制对象如何获取外部资源(包括其他对象和文件资料等) 。
【aop九宫格java代码 java九宫格程序】 总的来说:IOC就是通过在Xml配置文件里依赖注入来解决代码问题 。
IOC的注入类型有几种?主要可以划分为三种:构造函数注入、属性注入和接口注入 。Spring支持构造函数注入和属性注入
面向切面(AOP)
(面向切面编程 , AOP其实只是OOP的补充而已,AOP基本上是通过代理机制实现的 。)
我们管切入到指定类指定方法的代码片段称为切面,而切入到哪些类、哪些方法则叫切入点 。有了AOP,我们就可以把几个类共有的代码,抽取到一个切片中 , 等到需要时再切入对象中去 , 从而改变其原有的行为 。
我们都知道 Java 是 OOP-面向对象编程的,它有自己的优势,也有自己的不足 。比如说:在我们开发中 , 都会有一条业务主线(即客户的需求) 。而我们要做的就是实现这个主线上的需求 。我们在实现这些功能的时候,经常要干一些额外的不可避免的事情,比如事务的管理 , 日志的记录等 , 就很繁杂且代码量增多,所以 Spring 提供了另一种角度来思考程序结构 , 也就是把这一些事情剥离出来 , 然后适时适地的把它们加入到我们的代码中,比如说 声明式事务管理的时候,我们在 service 层检测到save*、update*这些方法要被调用的时候,我们先进行开启事务什么的,这就是AOP,面向编程的思想 。
AOP的术语:
1、通知(Advice):就是你想要的功能,也就是上面说的 安全,事物,日志等 。你给先定义好把,然后在想用的地方用一下
推荐阅读
- excel函数怎么写,excel函数实用技巧
- asp.net做h5的简单介绍
- gis地图系统开发,gis开发教程
- 乐橙直播录屏怎么录屏教程,乐橙录像回放怎么操作
- mysql出错了怎么修改 mysql输错命令如何修改
- 电脑屏幕分享怎么放大,电脑 屏幕分享
- js对象的key为变量,js对象的属性值可以是变量
- java网上爬虫交易平台,java爬虫教程
- go语言垃圾回收视频 go 垃圾语言