相信熟悉java的人都不会陌生于SSH,但是作为一个之前没有接触过框架的人,SSH的任何一个都带有一定的神秘色彩。
今天公司培训了Spring,主要是介绍了Spring的特点。由于自己知识底蕴的不足,所以听得还是相当的有味道,下面来写写自己的出略理解。
如果你是高手,那就没有必要看下去了,因为作为一只菜鸟,我的言语一定让你鄙夷,而作为初学者,特别是有一定编程基础的初学者,也许能够在其中找到一些学Spring的方法。
培训只是用了两个多小时,这其中讲得最多的是思想。
1.解耦合思想
我们开发的时候总希望并发进行,但有时候某个模块会依赖于另一个模块。下面用M1(Model1),M2(Model2)代替,举个例子M1要用到M2的某些方法,在传统的编程上就必须M2模块完全开发出来然后再供M1调用,才能开发M1。但很多时候在企业级应用中这样开发的效率会非常忙,可能你产品出来了市场又变了,对企业来说风险太大。于是面向接口编程孕育而生,面向接口是什么呢?这个要说复杂也复杂,要说简单可能也不难。面向接口的思想其实就是M1团队跟M2团队协商制定了一些可调用的函数。M1要调用M2的时候就通过这些协商好的函数,而M2呢就屏蔽了内部的实现,只对M1提供约定好的函数,这样M1和M2就可以同时进行开发了。
可是这样虽然解决了时间上的并发,但在项目交接后对代码的维护工作量还是没有变化。例如由于用户需求的变更,M2中的某个类改变了,例如最简单的M2中类名从A改成了B,但在M1中调用接口的时候实际上还是用new 生成了对象,由于是通过new,所以在M1中也会些M2的类名。这样若M2的类名变更了,那么M1中的所有与之相关的地方都必须修改,几处的话还好,如果是很多处呢,那维护起来就太烦人了。因此Spring通过了另外一种方式让M1和M2关联。其实就是用另一种方式在M1中生成M2中类的对象。Spring的做法是通过xml文件配置的方式。这样的话无论怎样修改M2都不会影响到M1模块,从而使项目的各模块之间解耦合。
2.方式
说到Spring最重要的就是控制翻转(IOC),注解。其实从我的理解就是为了使企业的开发更加顺畅,模块间的依赖关系不那么紧密,在客户需求更改的时候可以很好地应对,并且企业承担的风险更低。用文件关联模块的方式使得模块之间解耦合,只不过Spring用的人多,而且有自己的一套规范,便成了行业的标准。