自从参加java培训以来就开始想一些东西,将平时的经验,学习开发知识的过程记录下来,因为许多原因,做过多次尝试,内心有过多次煎熬,终于能够安静的坐下来,做些总结。
SSH框架是我接触的第一个开发类框架,做了将近两年的开发,里面参杂着实施,测试,维护工作。也许正是因为这样的原因,使我能够在开发的过程中能够考虑到客户的使用体验,开发的整体流程,开发的其他细节,避免开发过程中出现灾难性的bug。
SSH(Spring Struts Hibernae)框架:Spring具有java bean容器的作用,使用IOC(Inject Of Convert)技术和AOP(Aspect Of Project)接管了Hibernate的DAO和事物,以及Struts的Action对象和Service业务层的创建于管理,今进而充分接管事物和代理request请求,经过IOC处理后,针对接口的软件编程使开发项目分层更加明确。
工作了将近两年,才开始对MVC分层有个大致的了解,真是汗颜啊。
M:模型层,Spring,javabean原型创建
V:最困惑的也许就是这个层了,想着在SSH这三个兄弟找出一个,套在V层上,最后发现套的太勉强,自己都说服不了自己,原来是JSP负责这层,真是有种众里寻她千百度,那人却在灯火阑珊处的感觉。想想也是,V是个视图层,本来就是JSP页面的活。
C:最难搞得就是这个层了,控制层,请求的处理,跳转,处理结果的发送,在此过程中产生的寻址,些许核心业务Flow就在这里面,当然了这是属于Struts的活。
struts的作用:使得web项目能够接受以.action为后缀的request请求,再把请求交友spring的IOC容器来实例化控制层action。执行action的内部execute方法达到实现业务层的目的。
持久层:在发开过程中忽视了这层,导致在面试/工作期间屡屡碰壁,开发一代而过导致未深入细节分析,造成对数据缓存技术与内存管理就是知之深浅。在SSH框架中由Hibernate担任这个角色。
一些书籍上显示三层分层明确,误以为此三层为相互独立的关系,这也是对这个框架理解不够充分所导致。SSH畅行许多年,如此强大岂会使各个层之间不能协调工作。
Spring作为容器的角色,自然是充当整个开发项目的容器,但凡可以成为javabeab的文件(类,DAO,等)皆可至于此容器中。
说点Spring整合的东西,前期Spring能过作为项目开发中容器的存在,有了容器,能够管理里面的货物才是好的容器,比如仓库。对于货物,不能只进行一个进仓 使用 出仓的流程就了事了,还要对这个流程充分管理,比如在进仓的时候验货 贴标签等处理,在使用的时候登记 返回 是否收费等等一系列的处理。Spring框架也存在,我猜这应该就是Spring的整合功能。例如事物处理,序列化等。
现在想起来Spring确实太强大,明白为什么Spring框架横行于各个Web项目开发框架中(SpringMVC ,Ibatis),以至于在android开发中都存在它的影子。