SSH框架整合

SSH三大框架整合

1.struts2
2.hibernate5.x
3.spring4.x
Hibernate框架
  1. hibernate核心配置文件
    (1)数据库信息
    (2)hibernate信息
    (3)映射配置
    (4)hibernate核心配置文件
    ---- 如果单纯使用hibernate框架,核心配置文件名称 hibernate.cfg.xml和位置 src下面 固定的
    ---- hibernate和spring整合时候,hibernate核心配置文件名称和位置没有固定要求的

  2. hibernate映射配置文件
    实体类和数据库表映射关系—使用orm思想

  3. 在spring框架对hibernate框架进行封装,使用的hibernateTemplate

Struts2框架
  1. Action操作
    (1)Action创建时继承类 ActionSupport(最常用方式)
    (2)配置action访问路径
    创建struts.xml配置文件,这个文件名称和位置固定 src下面的
    (3)配置访问action的多个方法
    使用通配符方式配置
    (4)在action获取表单提交数据
    获取request对象 – 使用ServletActionContext类获取
    属性封装
    模型驱动
    表达式封装
    (5)在action操作域对象 – 使用ServletActionContext获取域对象
    (6)配置struts2的过滤器
  2. 值栈
    (1)向值栈放数据
    set方法
    push方法
    定义变量,生成get方法
    (2)从值栈获取数据
    在jsp中使用struts2标签+ognl获取 (EL+jstl也可以)
    <s:property>
    <s:iterator>
  3. 拦截器
    继承MethodFilterInterceptor、
    重写类里面的方法
    配置拦截器和action关联
Spring框架
  1. spring核心配置文件
    (1)名称和位置没有固定要求
    (2)在spring核心配置文件中引入schema约束
  2. 创建对象
    (1)xml配置方式:
    (2)注解方式:四个注解
  3. 注入属性(对象类型属性)
    (1)xml配置方式
    (2)注解方式:两个注解
    autowired
    resource
  4. 使用ServletContext对象和监听器实现
    (1)在服务器启动时候,加载spring配置文件,创建对象
    (2)配置spring的监听器
    (3)指定spring配置文件位置
  5. jdbcTemplate
  6. spring事务配置
    (1)xml方式
    (2)注解方式

SSH框架整合思想

  1. 三大框架应用在javaee三层结构
    在这里插入图片描述
  2. struts2框架和spring整合
    struts2的action在spring配置
    在这里插入图片描述
  3. spring框架和hibernate框架整合
    (1)hibernate的sessionFactory交给spring配置
    (2)把hibernate数据库配置交给spring配置
    在这里插入图片描述

整合struts2和spring框架

  1. 把struts2的action交给spring管理
  2. 实现过程
    第一步 导入struts2的jar包struts2-spring-plugin-2.3.24.jar
    第二步 创建action
    第三步 创建struts2核心配置文件,配置action
    ----位置在src下面,名称是struts.xml
    第四步 配置struts2过滤器
    第五步 导入spring的jar包
    第六步 创建spring配置文件
    (1)引入约束
    (2)配置spring监听器
    (3)指定spring配置文件位置
<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:bean1.xml</param-value>
</context-param>
第七步 把action交给spring进行配置(***)
<!-- 配置action的对象 -->
<bean id="userAction" class="cn.itcast.action.UserAction" scope="prototype"></bean>
(1)在spring配置action对象,在struts.xml中也配置action对象
(2)解决:只需要在spring里面配置action对象,不要在struts.xml中配置
<!-- class属性里面不写action全路径了,因为写,action对象创建两次
写spring配置的action的bean的id值
 -->
<action name="userAction" class="userAction"></action>

Spring框架整合hibernate框架

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

第一步 导入hibernate的jar包
导入spring整合持久化层框架需要导入jar包spring-orm-4.2.4.RELEASE.jar
第二步 搭建hibernate环境搭建
(1)创建实体类
(2)配置实体类映射关系
(3)创建核心配置文件
第三步 把hibernate核心配置文件数据库配置,在spring进行配置
(1)把hibernate核心文件中数据库配置去掉了,在spring配置

<!-- 配置c3p0连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
	<!-- 注入属性值 -->
	<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
	<property name="jdbcUrl" value="jdbc:mysql:///web"></property>
	<property name="user" value="root"></property>
	<property name="password" value="root"></property>
</bean>

第四步 把hibernate的sessionFactory交给spring配置
(1)服务器启动时候,加载spring配置文件,把配置文件中对象创建
(2)把sessionFactory对象创建在spring配置
(3)因为创建sessionFactory代码不是new出来的,而是多行代码实现的

//加载核心配置文件
cfg = new Configuration().configure();
//创建sessionfactory
sessionFactory = cfg.buildSessionFactory();

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

<!-- sessionFactory创建交给spring管理 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
	<!-- 因为在hibernate核心配置文件中,没有数据库配置,数据库配置在spring里面配置,注入dataSource -->
	<property name="dataSource" ref="dataSource"></property>
	
	<!-- 指定使用hibernate核心配置文件 -->
	<property name="configLocations" value="classpath:hibernate.cfg.xml"></property>
</bean>

第五步 在dao里面使用hibernateTemplateorg.springframework.orm.hibernate5.HibernateTemplate
(1)在dao得到hibernateTemplate的对象

//得到hibernateTemplate对象
private HibernateTemplate hibernateTemplate;
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
	this.hibernateTemplate = hibernateTemplate;
}
<!-- 创建实现类对象 -->
<bean id="userDaoImpl" class="cn.itcast.dao.UserDaoImpl">
	<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>

<!-- 创建hibernateTemplate对象 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
	<!-- 注入sessionFactory -->
	<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

(2)调用hibernate模板里面save方法添加

User user = new User();
user.setUsername("rose");
user.setAddress("japan");
//调用save方法实现添加
hibernateTemplate.save(user);

注意:没有配置事务,做操作时候,出现异常
在这里插入图片描述
第六步 配置事务

<!-- 第一步 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
	<!--注入sessionFactory-->
	<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<!-- 第二步 开启事务注解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>

//service层中
@Transactional
public class UserService {

HibernateTemplate介绍

  1. HibernateTemplate对hibernate框架进行封装,直接调用HibernateTemplate里面的方法实现功能
  2. HibernateTemplate常用的方法
    (1)Serializable save(Object entity) :添加操作
    (2)void update(Object entity) :修改操作
    (3)void delete(Object entity) :删除操作
    (4) T get(Class entityClass, Serializable id) :根据id查询
    (5) T load(Class entityClass, Serializable id): 根据id查询
    (6)List find(String queryString, Object… values) :查询操作的方法

总结:SSH框架整合过程

第一步 导入jar包

第二步 搭建struts2环境
(1)创建action,创建struts.xml配置文件,配置action
(2)配置struts2的过滤器

第三步 搭建hibernate环境
(1)创建实体类
(2)配置实体类和数据库表映射关系
(3)创建hibernate核心配置文件
	引入映射配置文件
	
第四步 搭建spring环境
(1)创建spring核心配置文件
(2)让spring配置文件在服务器启动时候加载
	配置监听器
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	指定spring配置文件位置
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:bean1.xml</param-value>
	</context-param>

第五步 struts2和spring整合
(1)把action在spring配置(action多实例的)
	<bean id="userAction" class="cn.itcast.action.UserAction" scope="prototype"></bean>
(2)在struts.xml中action标签class属性里面写 bean的id值
	<!-- class属性里面不写action全路径了,因为写,action对象创建两次
	写spring配置的action的bean的id值
	 -->
	<action name="userAction" class="userAction"></action>
第六步 spring和hibernate整合
(1)把hibernate核心配置文件中数据库配置,在spring里面配置
	<!-- 配置c3p0连接池 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<!-- 注入属性值 -->
		<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
		<property name="jdbcUrl" value="jdbc:mysql:///web"></property>
		<property name="user" value="root"></property>
		<property name="password" value="root"></property>
	</bean>
(2)把hibernate的sessionFactory在spring配置
	<!-- sessionFactory创建交给spring管理 -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
		<!-- 因为在hibernate核心配置文件中,没有数据库配置,数据库配置在spring里面配置,注入dataSource -->
		<property name="dataSource" ref="dataSource"></property>
		
		<!-- 指定使用hibernate核心配置文件 -->
		<property name="configLocations" value="classpath:hibernate.cfg.xml"></property>
	</bean>
第七步 在dao里面使用hibernateTemplate
(1)在dao注入hibernateTemplate对象
(2)在hibernateTemplate对象中注入sessionFactory
	<!-- 创建实现类对象 -->
	<bean id="userDaoImpl" class="cn.itcast.dao.UserDaoImpl">
		<property name="hibernateTemplate" ref="hibernateTemplate"></property>
	</bean>
	
	<!-- 创建hibernateTemplate对象 -->
	<bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
		<!-- 注入sessionFactory -->
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
第八步 配置事务
	<!-- 第一步 配置事务管理器 -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
		<!--注入sessionFactory-->
		<property name="sessionFactory" ref="sessionFactory"></property>
	</bean>
	
	<!-- 第二步 开启事务注解 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>

//service层中
@Transactional
public class UserService {
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SSH框架是指Struts+Spring+Hibernate的集成框架,主要用于快速搭建Web应用程序。它将应用程序分为表示层、业务逻辑层、数据持久层和域模块层,以实现结构清晰、可复用、易于维护的Web应用程序。其中,Struts负责MVC分离,控制业务跳转;Hibernate提供持久层支持;Spring作为管理框架,管理Struts和Hibernate之间的关系。 而SSM框架指的是Spring+SpringMVC+MyBatis的集成框架。它是由Spring和MyBatis两个开源框架整合而成,通常用于数据源较简单的Web项目。在SSM框架中,SpringMVC是Spring的一部分,负责处理MVC的分离,而MyBatis则是用于提供持久层支持的框架。 另外还有Struts框架,它与SSH框架类似也是一种开源框架。它使用Servlet和JSP实现,并且基于MVC模型。Struts框架的核心组件包括Action、ActionServlet以及视图部分由多个相互关联的JSP文件组成。它可以有效地减少基于MVC模型的Web应用系统的开发时间,从而控制系统开发成本。 所以,SSH框架和SSM框架都是用于快速开发Web应用程序的集成框架,而SSH框架使用的是Struts+Spring+Hibernate,而SSM框架使用的是Spring+SpringMVC+MyBatis。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [简述SSM框架SSH框架](https://blog.csdn.net/m0_37876935/article/details/93891639)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值