ssh 简单总结

 Java应用的学习从今年年初的DRP项目学习开始的,从最初的J2SE到J2EE,再到现在的SSH框架学习。这也应该是自己接触编程以来研究和接触时间比较长的一类语言,从这里我也了解到了做企业级大型应用系统应该具有的一种规范,Java经历了十多年的飞速发展已经相当成熟,形成了成熟的规范和解决方案使我们能够更加平稳便捷的去开发和部署。

       在SSH框架中体现了组件开发的优越性,使得系统部件的高重用和易维护很容易实现。SSH(Spring+Struts+Hibernate)这三个框架分别都进行了高度抽象(封装)与优化,能够让开发人员有更多的精力去关注业务,而非头脑僵硬的去处理那些基础、重复、纠缠在一起的代码。终究是这些成熟的应用框架让我们在原本繁重的开发工作中有时间打打球、买买菜。

       Struts:整体来说应该属于对界面层和页面之间控制跳转以及简单逻辑处理的一种管理和映射。听说Struts体现了MVC的分层思想,那Struts中分出了*ActionForm、*Action,前者处理表单数据信息,后者进行页面逻辑的一些处理以及相应页面的跳转管理,这有点像.NET平台下的*.aspx和*.aspx.cs这对文件,同样是将页面的数据和逻辑分开来管理。

        个人感觉Struts这个框架就像是车流涌进的十字路口上时刻变换指挥的红绿交通灯,管理着我们页面层的数据和跳转流向,使之规范化。

        Struts的基本工作机制:预先加载web.xml --> 初始化ActionSevlet  --> 读取struts-config.xml中的配置信息,注册ActionMapping各映射对象--> 截获页面请求,从ActionMapping中查找相关实例,若不存在则返回路径无效信息,若存在则继续查找ActionForm实例,将相应Form页面中数据加载到ActionForm实例中(这里是一种对象化编程的体现)--> 根据struts-config.xml中的ActionMapping配置,跳转到相应的Action类,执行相应Action实例的execute()方法,继而根据返回的ActionForward对象决定生成并跳转到指定JSP页面。这样的一个基本流程中穿插了MVC分层模式中的VC两层,而M层主要体现在execute()方法的执行过程中会调用相关M层类方法。在调用M层方法的同时我们可以应用Spring框架对方法间依赖关系进行剥离,对各类方法间关系进行管理。应用Struts框架的项目时效性和系统可扩展和可维护是要平衡来看待的。

       Spring:是一个轻量级的IoC和AOP框架,是继Struts之后管理类间关系的。其内部提供的AOP(面向切面)使得我们能够把普遍存在的问题抽象出来,并将这些能够影响多个类的行为属性封装到一个高重用性的模块中。使用Sping可以做事务、安全性、日志等功能。

      Spring的机制流程:加载核心配置文件applicationContext.xml--> 注册配置文件中的bean对象到spring框架中,根据bean属性内容指定IoC依赖注入的方式--> 将依赖关系的多个对象通过DI进行注入。
      

 


      Hibernate:是对JDBC进行了高度封装,对关系型数据库进行配置映射,从而实现了对关系型数据库的面向对象式操作,比如直接使用session.save() / session.update()等就能完成之前使用SQL和JDBC联合编码才能完成的对数据的持久化、更新。在Hibernate中初学者要认清楚其中实体类配置文件的书写以及实体类间的几种对应关系要如何创建(one-to-one / many-to-many / one-to-many / many-to-one)。相比Struts和Spring的属性配置难易度,Hibernate应该算是三者之中最易操作的一个。

       Hibernate的基本工作流程如下:读取并解析配置文件--> 读取并解析映射信息,创建Session Factory--> 打开Session--> 创建事务Transaction--> 进行持久化操作--> 提交事务--> 关闭已打开的Session--> 关闭创建的Session Factory。

      Hibernate就是这样一个半自动化的数据持久化框架,需要我们做的很少,便能大大简化我们对数据的访问操作,由于它的高封装性,简化了DAO层的编码。同时要提到的,就是Hibernate中实现的Lazy加载机制,体现为get和load的不同数据加载方式。Lazy方式加载数据,只是做到了在正确的时间做正确的事,在必要的时刻加载必要的数据,这样一来就能够一定程度的优化性能,避免无谓的性能开销。同样Hibernate中的Session,还有其中的缓存处理以及实体配置映射都是需要好好理解和应用的,。
      

           

       从整体来看SSH框架,三个子框架的结合能够很好的将各自的优势发挥出来,基本上可以说是一个非常成熟优秀的分层框架。更加深入的了解和熟悉还是要在今后的项目开发中去,其实这些开源框架的源码更是一种开放性的宝贵资源,学好这些或许很容易,学通这些就要好好下点功夫了。

你可能感兴趣的:(spring,Hibernate,框架,session,struts,ssh)