最近要重新温习一下Java,大学学的东西都忘了 许多,现在要重新捡起来,
先从框架入手,其中最重要的就是Spring
都知道Spring最重要的就是 IOC和AOP 那什么又是IOC 和AOP呢,怎么样才能通俗的理解和记住呢!
其中IOC 就是就是我们常说的“控制反转”,控制反转并不是一种什么技术,而是一种设计思想。
我理解的是 使用IOC的好处就是 它直接将类于依赖的关系写在配置文件中,通过容器加载管理。
比如:在action中依赖service 的一个实现,在service中依赖dao层的一个实现,当在使用action的时候,你必须要new一个
service 还有一个dao,才能够实现。
而在使用spring之后 直接拿到action类就可以使用。可以少些new方法。当然IOC的好处不仅仅是少写new方法。
IOC 是叫做“控制反转”,那什么又叫控制反转呢,有反转就肯定有正传,传统方式是由我们主动获取依赖对象,这样就是正转,
反转就是容器帮我们注入依赖对象。在这里在网上找到一张图图片,可以解释这个问题。
这是传统方式,都是有客户端主动创建的。
又ioc容器之后,对象的创建,依赖的注入都交有IOC管理,客户端只是需要在IOC里获取到想用的类就行。
然后Spring 还有一个比较重要的就是AOP,面向切面编程。
http://www.cnblogs.com/Wolfmanlq/p/6036019.html
AOP可以看这篇文章我觉得讲的非常通俗易懂了。比如:
你有一个登陆,之后验证用户的功能,当你写代码时就可以先只考虑主流程,登陆之后的流程。用户验证的功能就可以交给Spring,我在另一个地方写好用户验证的功能,然后告诉Spring 你要把这段代码加到哪里就OK,Spring就帮你加载过去,这个可以实现复用。它正真的作用就是在开发时只考虑主程序,一些其他的流程可以时候通过Spring再后续加载上去。举一个通用的例子,经常在debug的时候要打log吧,你也可以写好主要代码之后,把打log的代码写到另一个单独的地方,然后命令AOP把你的代码加过去,注意AOP不会把代码加到源文件里,但是它会正确的影响最终的机器代码。