文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

struts + Hibernate + Spring WEB框架

2024-04-02 19:55

关注

   struts:负责显示层,是一个完美的MVC实现,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。

   Hibernate:创建一系列的持久化类,将每个类的属性与数据库表的属性一一对应。

   Spring:依赖注射和控制反转。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。

Java Web应用程序架构:Struts负责显示层,Hibernate负责持久层,Spring负责中间的业务层。


另外,由于Spring使用的依赖注射以及AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于Spring自己也实现了一个使用依赖注射的MVC框架,叫做Spring MVC,同时为了很好的处理事物,Spring集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。



所谓的三层开发就是将系统的整个业务应用划分为“表示层-业务逻辑层-数据访问层”

1、Struts

    Struts的控制文件struts-config.xml、Action和Action Servlet实现MVC的控制器,JavaBean或者EJB完成MVC的模型部分,JSP页面承担MV的视图组件,而且所有的控制逻辑都是有struts-config.xml配置文件来完成。

    Struts2提供了丰富的拦截器实现

2、Hibernate

    Hibernate是数据持久层的一个轻量级框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用

    对象编程思维来操纵数据库。提供了查询获取数据的方法,用面向对象的思想来操作数据库,节省开发处理数据的时间。

    在物理数据库之上利用一些配置文件如hibernate.cfg.xml、Action和Action文件、XML Mapping(映射文件)等来为应用系统

    提供数据持久化方面的服务,同时达到将应用系统的持久层与不同的物理数据库系统相互隔离开的目的。

    Hibernate的工作流程:

     读取并解析配置文件;

     Configuration负责读取并创建映射信息,创建session factory

     SessionFactory负责创建session;

     Transaction负责开启事务Transaction;

     Query负责执行持久化操作;

     Transaction负责提交事务;

     关闭session和session factory;

    Hibernate中提供了两级Cache,第一级别的缓存是Session级别缓存,它属于事务范围的缓存。由Hibernate管理,一般情况下无需进行干预。第二级别的缓存是Session Factory级别缓存,属于进程范围或群集范围的缓存。可以进行配置和更改,并可以动态加载和卸载。

3、Spring

    Spring:核心容器提供Spring框架的基本功能。核心容器主要组件是Bean Factory,它是工厂模式的实现。Bean Factory 使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。控制反转即依赖注入是Spring的核心。对象间的某种依赖关系式由容器在运行期间注入调用者,控制程序间的关系的实现交给了外部容器来完成。

依赖注入存在2中实现方式:

1、设值注入即Set注入

2、构造注入


总结:

    Struts 用于表示层,直接面向用户,响应用户的请求,为显示提供一个模型和一个控制器,并委派调用业务逻辑和其他上层处理等功能。   

    Spring 在事务管理和依赖注入方面的独特能力,实现处理应用程序的业务逻辑和业务校验,以及提供与其他层进行相互作用的接口等。  

    Hibernate 是ORM(对象关系映射) 的实现,利用它建立Java 对象模型的持久化对象,进而以面向对象的方式来方便地操作关系数据库。 

    这样Struts、Spring 和Hibernate 就能够很好地封装各个层次的程序,如在处理前台表示层时就不会把事务逻辑和持久化逻辑掺杂进来,从而最大限度地实现各层的高内聚低耦合目标。


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯