博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH三大框架整合
阅读量:3956 次
发布时间:2019-05-24

本文共 3464 字,大约阅读时间需要 11 分钟。

文章目录

一. SSH 简单的回顾

  • struts2
  • hibernate5.x
  • spring4.x
    在这里插入图片描述

1. Hibernate框架

2. Struts2框架

3. Spring框架

二. ssh整合思想

在这里插入图片描述

三. 整合struts2和spring框架(把struts2的action交给spring管理)

1. 导入相关jar包

新建项目,并导入相关jar包

在这里插入图片描述

  • 包括spring的基本jar包
  • 整合struts框架的jar包
  • 整合web项目的jar包
    在这里插入图片描述
  • 还有struts2所有的jar包
    在这里插入图片描述

2. 创建action

在这里插入图片描述

3. 创建struts2核心配置文件,配置action

(1). 位置在src下面,名称是struts.xml

在spring配置action对象,在struts.xml中也配置action对象的问题

解决:只需要在spring里面配置action对象,不要在struts.xml中配置

在这里插入图片描述

4. 配置struts2过滤器

在这里插入图片描述

5. 创建spring配置文件

  • 引入约束

在这里插入图片描述

  • 配置spring监听器

    在这里插入图片描述

  • 指定spring配置文件位置

    在这里插入图片描述

6. 把action交给spring进行配置

在这里插入图片描述

在这里插入图片描述

运行过程理解:

  • 启动服务器,系统加载bean1.xml文件,并创建里面的action对象
  • 一旦我们访问action的时候,拦截器首先先进行拦截,然后看我们选择的action根据我们访问的路径名字,从struts2.xml文件里面找对应的名字name值,之前是根据class里面的反射创建对象来进行访问,但是现在class里面有个spring传来的对象(这个class会到spring的配置文件bean1.xml里面找对应的id值,进而得到相应的对象),所以也可以直接访问对应的UserAction.java。

四. Spring框架整合hibernate框架

  • 1 把hibernate核心配置文件中配置数据库信息,把数据库信息在spring进行配置
  • 2 把hibernate里面的sessionFactory创建交给spring管理

1. 导入hibernate的jar包

在这里插入图片描述

在这里插入图片描述

2. 搭建hibernate环境搭建

(1). 创建实体类

在这里插入图片描述

(2). 配置实体类映射关系

在这里插入图片描述

(3). 创建核心配置文件

在这里插入图片描述

3. 把hibernate核心配置文件中数据库配置,在spring进行配置

把hibernate核心文件中数据库配置去掉了,在spring配置

在这里插入图片描述

4. 把hibernate的sessionFactory交给spring配置

  • 服务器启动时候,加载spring配置文件,把配置文件中对象创建

  • 把sessionFactory对象创建在spring配置

  • 因为创建sessionFactory代码不是new出来的,而是多行代码实现的

    在这里插入图片描述
    上图是之前进行测试代码,来创建sessionFactory,如果使用spring的话,上面的com.pudding.utils包可以不要,直接通过spring来创建sessionFactory

  • spring里面针对上面情况,封装类(LocalSessionFactoryBean),配置类对象可以创建sessionFactory

    在这里插入图片描述
    在这里插入图片描述

执行过程:在服务器启动的时候bean1.xml配置文件会被加载,它一加载,里面的对象都会被创建(userAction被创建、sessionFactory对象也会被创建,也就是会连接数据库,并立即生成数据库的表)

5. 在dao里面使用hibernateTemplate

  • 在dao得到hibernateTemplate的对象,也就是把hibernateTemplate对象在spring中注入给userDaoImpl,而在userDaoImpl.java类中可以通过set方法获得相应的hibernateTemplate对象,并进行直接调用对象的方法进行使用。
    在这里插入图片描述
    在这里插入图片描述
  • 调用hibernate模板里面save方法添加对象到数据库的操作
    在这里插入图片描述

没有配置事务,做操作时候,出现异常

在这里插入图片描述

6. 创建service

在service中可以直接获得usedao对象,也是通过spring的注入,通过set方法获得对象。然后也可以直接通过对象.方法名进行方法的调用。

在这里插入图片描述
在这里插入图片描述
同理:UserAction也可以直接通过spring的注入,set方法获得userService对象,进而通过对象.方法名,直接使用UserService里面的方法。
在这里插入图片描述

7. 配置事务

没有配置事务,做操作时候,出现异常

在这里插入图片描述
一般建议在service上面使用注解
在这里插入图片描述

8. 相关代码

spring的bean1.xml文件代码

hibernate.cfg.xml文件代码

true
true
update
org.hibernate.dialect.MySQLDialect

struts.xml相关代码

五. Eclipse中SSH框架整合过程

1. 第一步 导入jar包

ssh整合jar包

2. 第二步 搭建struts2环境

(1)创建action,创建struts.xml配置文件,配置action

(2)配置struts2的过滤器

3. 第三步 搭建hibernate环境

(1). 创建实体类

(2). 配置实体类和数据库表映射关系

(3). 创建hibernate核心配置文件

  • 引入映射配置文件

4. 第四步 搭建spring环境

(1). 创建spring核心配置文件

(2). 让spring配置文件在服务器启动时候加载

  • 配置监听器
    在这里插入图片描述
  • 指定spring配置文件位置
    在这里插入图片描述

5. 第五步 struts2和spring整合

(1). 把action在spring配置(action多实例的)

在这里插入图片描述

(2). 在struts.xml中action标签class属性里面写 bean的id值

在这里插入图片描述

6. 第六步 spring和hibernate整合

(1). 把hibernate核心配置文件中数据库配置,在spring里面配置

在这里插入图片描述

(2). 把hibernate的sessionFactory在spring配置

在这里插入图片描述

7. 第七步 在dao里面使用hibernateTemplate

(1). 在dao注入hibernateTemplate对象

(2). 在hibernateTemplate对象中注入sessionFactory

在这里插入图片描述

8. 第八步 配置事务

在这里插入图片描述

在这里插入图片描述

六. Eclipse中SSH其他的整合方式

1. spring整合hibernate时候,可以不写hibernate核心配置文件

  • 把hibernate核心配置文件中,基本信息配置和映射引入都放到spring配置

在这里插入图片描述

在这里插入图片描述

七. Spring分模块开发

  • 1 在spring里面配置多个内容,造成配置混乱,不利用维护

  • 2 把spring核心配置文件中,一部分配置放到单独的配置文件中,在spring核心配置文件中引入单独配置文件(约束内容必须要有)

在这里插入图片描述

转载地址:http://ahxzi.baihongyu.com/

你可能感兴趣的文章
P9-c++对象和类-02构造函数和析构函数总结
查看>>
P10-c++对象和类-03this指针详细介绍,详细的例子演示
查看>>
bat备份数据库
查看>>
linux数据库导出结果集且比对 && grep -v ---无法过滤的问题
查看>>
shell函数与自带变量
查看>>
linux下shell获取不到PID
查看>>
sort详解
查看>>
linux,shell中if else if的写法,if elif
查看>>
shell中单引号、双引号、反引号的区别
查看>>
shell脚本死循环方法
查看>>
shell中$*和$@的区别
查看>>
log4cxx 的编译安装过程和使用
查看>>
简单邮件系统程序
查看>>
STL里的multimap使用详解
查看>>
STL 库其中的 std::string用法总结
查看>>
模态对话框的销毁过程与非模态对话的几种销毁方法
查看>>
C++实现http下载 && 24点计算编码风格
查看>>
memcached了解使用和常用命令详解
查看>>
GDB调试各功能总结
查看>>
"undefined reference to" 多种可能出现的问题解决方法
查看>>