2007-06-05

Spring之概念入门

关键字: Spring之概念入门

Spring是什么
spring是一个开源的java框架,集成了各种主流的技术包括web mvc,orm,ejb,rmi,javamail等
他就象一个粘合济,在实际项目中,将前后台程序粘合在一起,构建出一个完整的系统。

spring中的各个组件也可独立使用,你可以在你的项目中选择性的使用spring提供的某一部分功能

Spring的核心是ioc和aop

什么是IOC

Inversion of Control,控制反转或反转控制,其和另外一个概念DI-Dependency Injection依赖注入
等价。

到底如何来理解IOC?

IOC确切的说,他是一种思想、概念,跟OOP是一种编程思想一样,他是在大量的项目实践中总结出来了
的一种精妙地程序设计思想。在原先的程序设计中,我们通常是通过new XXX(),其中,XXX就是某个类
的名称,在没有ioc思想引入时,我们程序中大量充斥着new XXX()这样的代码。这些代码都需要我们程
序员手工编写。而引入了ioc思想之后,对象的管理全部交给Spring这个容器来管理,当我们程序需要
对应类的对象时,我们直接从Spring容器里面获取,换句话说,就是Spring容器把产生好的对象交给了
我们的程序,这种方式就叫做注入(就跟医生拿着可怕的针管将液体注入到我们的屁股上一样,为什么
要注入,还不是你的屁股需要嘛!因为你需要,所以我给你,这就是DI)

而IOC的深层含义就是,将原先对象产生的主动权交给了Spring容器,由Spring容器来为我们完成对象的
new的过程,并将对象在我们需要时交给我们。

Spring正是IOC思想的一个完美产物和实践者!

什么是aop

Aspect Oriented Programming,面向方面编程,它也是一种编程思想,它是对OOP编程思想的一种升华
OOP强调的是对象,而aop强调的是面(不是饺子)

那么,什么是面?

如果拿我们的教室做比方,那么教室的前门和后窗就是一个面,一个截面,通过这样的截面,将我们这块
空间分成了室内、窗外和门外三部分。

如果拿我们吃的汉堡做比方,那么汉堡的夹心的前后就是一个面,一个截面,通过这样的截面,将我们的
普通面包分成了面包上层、夹心、面包下层。

如果。。。

还是拿我们的程序代码来说,
如果我们的dao用jdbc实现,那么在dao的每一个方法里都充斥着这样的代码,
 打开连接
 执行sql语句
 关闭连接
那么,这时,我们就可以在执行sql前后做出一个截面,通过这样的截面,将我们的程序代码分开,将打开
连接和关闭连接交给AOP去做,我们程序员只关注执行不同sql语句部分,避免了在dao的每个方法中都要编
写重复的打开连接和关闭连接代码。

如果我们的dao用hibernate实现,那么在dao的每一个方法里都充斥着这样的代码
 打开session
 执行session动作
 关闭session

同理,我们就可以在执行session动作前后做出一个截面,通过这样的截面,将我们的程序代码分开,将打开
session和关闭session交给AOP去做,我们程序员只关注执行session动作,避免了代码的重复岂不更好

这就是AOP,好好理解吧,那可是个漫长的思想体验过程!祝君好运!

 

 

 

 

 

 

 

 

 

评论
Emy 2008-04-20
没看懂,我的错~!
xuchuizi 2008-04-20
杨老~~经典!!
james.zhou 2008-03-27
讲的很通俗易懂
yelr_j 2008-03-27
杨老,写的不错哦。让我有了新的体验。
当初为何不是你来教我们的J2EE呢。
写的很好啊 让我理解了很多 以前模糊的东东
ricsson 2007-07-24
随便google一个示例代码Run,一下一切都明白了!
zhangcaijing 2007-07-23
老大,永远地支持你,一定要坚持写哦,时刻顶起....
iorim4 2007-07-12
spring的精髓就是Aop
hiavj 2007-07-08
刚接触AOP感觉好难啊!
bruce198 2007-06-19
楼主写的不错,通俗易懂。
rzxtjydjb 2007-06-05
慢慢来啃吧
iorim4 2007-06-05
那我坐哪儿?我日
lrz0534 2007-06-05
地板我也要了
lrz0534 2007-06-05
顺便板凳也坐了
lrz0534 2007-06-05
哈哈 我来个沙发
superbo8888
搜索本博客
我的相册
B019b218-f4ef-4013-a624-d73761eeb342-thumb
IMG_4903
共 3 张
最近加入圈子
存档
最新评论
评论排行榜