JavaWeb学习笔记(二十三)教你如何整合SSH项目

之前已经学过了Spring框架、Struts2框架、Hibernate框架,这三个框架分别对应着Java Web开发中的三层结构,为了更好的提升开发效率,可以以Spring为核心整合这三个框架。虽然现在Struts2框架因为其性能以及其他原因已经过时,但我们可以通过整合去体会其中的思想。

一、Spring与Struts2的整合

Spring和Struts2整合比较简单,需要将之前在struts.xml配置的Action配置到Spring的配置文件中,但这里需要注意一个问题。Struts2框架中的Action是基于类的,即多例模式。这点需要注意。

  1. 引入相关的jar包
    这里将spring和struts2相关的jar包引入后,还需要引入一个整合spring和struts2的jar包。

在这里插入图片描述

  1. web.xml文件的配置
    首先,在struts2框架中,需要在web.xml文件中配置拦截过滤器。
    在这里插入图片描述其次,SSH是Web项目,我们希望在启动服务器的过程就加载spring的配置文件。这里配置一个监听器,用于加载spring配置文件。
    在这里插入图片描述
    在这里插入图片描述
  2. 配置文件的修改
    如果按照未整合之前的配置文件发布,就会出现一个问题。Action会在spring容器中生成实例,除此之外,还会在访问的时候,在struts2也生成一个实例。在这里,我们希望用spring的ioc容器来管理实例对象。因此在struts.xml文件中需要做以下修改。我们修改class属性后面的内容,不再写类的路径,而是写对应spring容器中的id值。

在这里插入图片描述除此之外,还需要注意的一点,在spring配置文件中,需要将struts中的action配置成多例模式。
在这里插入图片描述

  1. 完成上述步骤后,实现了spring框架和struts2框架的整合。

二、Spring和Hibernate框架的整合

这两个框架融合主要有两个点,(1)关于SessionFactory的问题,生成该实例的代码较多,无法直接让spring容器生成。(2)将hibernate核心配置文件数据库配置放到spring配置文件中。

  1. 导入相关的jar包
    除了导入框架原有的jar包之外,还需要导入下面这个包:

在这里插入图片描述

  1. 数据源的改变

将hibernate中核心配置文件的数据源放置在spring配置文件中。
在这里插入图片描述

  1. SessionFactory交由Spring管理
    将SessionFactory交由Spring管理之前,先来看看SessionFactory是如何创建的。
    在这里插入图片描述从上图可以看出,我们很难利用Spring的配置文件将其实例化。为了解决该问题,Spring对SessionFactory的创建进行了封装。org.springframework.orm.hibernate5.LocalSessionFactoryBean这个类,就可以完成SessionFactory的实例化。
    在这里插入图片描述
  2. 完成以上步骤,就实现了这两个框架的融合。
    因为我使用的是IDEA软件开发,在使用hibernate框架的时候,通常建议将实体类的配置文件放置在与实体类的同一个包下,但在IDEA中使用maven构建项目时,java文件夹下的xml文件会被自动屏蔽掉。因此,启动项目时,会抛出找不到实体类配置文件的异常。将实体类配置文件放置在resources文件夹下,项目启动正常。
发布了66 篇原创文章 · 获赞 26 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Time__Lc/article/details/96473387