Spring Framework(7)-SSH整合过程总结

SSH整合开发的图书管理Web系统(MyEclipse+MySQL+Tomcat7) 一套开箱即用的Java Web图书管理系统,基于Struts+Spring+Hibernate(SSH)三大框架搭建,使用MyEclipse 8.5开发,部署在Tomcat 7.0服务器上,后端数据库为MySQL 5.0。系统区分管理员和普通用户两类角色:管理员可管理用户信息、发布公告、维护图书数据、处理销售记录及入库操作;普通用户支持注册登录、浏览图书列表、下单购买、查看个人订单。所有页面采用JSP实现,业务逻辑通过Servlet调度,数据访问由Hibernate DAO层完成,完整呈现MVC分层结构。资 阅读详情

点击查看更多Spring文章

目录

各框架的作用

1、需要导入的jar包

2、单独配置spring配置文件,再src下创建applicationContext.xml配置文件并导入约束


各框架的作用

 

1、需要导入的jar包

1)hibernate所需:

9个基础核心jar包:

jpa包:

 

 

2)struts2所需:

13个基础核心jar包:

导入后发现有两个重复jar包,删去版本低的一个即可

再导入一个整合spring包,如果不整合spring就不要导入,如果导入后,找不到spring 容器就会抛出异常

 

3)spring所需基础jar包:

太复杂,20个全导入即可

再导入一个c3p0包,方便使用c3p0连接池

 

2、单独配置spring配置文件,再src下创建applicationContext.xml配置文件并导入约束

然后在web.xml中书写监听器和配置参数

 <!-- 配置spirng随项目的启动而启动 -->
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 配置spring配置文件位置参数 -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:applicationContext.xml</param-value>
  </context-param>

 

 

 

3、配置struts2,导入web.xml的核心约束,书写过滤器

<!-- 配置strur2核心过滤器 -->
  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>  

创建struts.xml,并配置以下常量,将struts2交给spring管理生命周期

注意,applicationContext.xml中的bean配置成多例对象,因为每次请求都会创建一个action

4、配置hibernate

配置hibernate.cfg.xml主配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
	
		 <!-- 数据库驱动 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		 <!-- 数据库url -->
		<property name="hibernate.connection.url">jdbc:mysql:///ssh_crm</property>
		 <!-- 数据库连接用户名 -->
		<property name="hibernate.connection.username">root</property>
		 <!-- 数据库连接密码 -->
		<property name="hibernate.connection.password">123</property>
		<!-- 数据库方言
			不同的数据库中,sql语法略有区别. 指定方言可以让hibernate框架在生成sql语句时.针对数据库的方言生成.
			sql99标准: DDL 定义语言  库表的增删改查
					  DCL 控制语言  事务 权限
					  DML 操纵语言  增删改查
			注意: MYSQL在选择方言时,请选择最短的方言.
		 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
	
		<!-- 将hibernate生成的sql语句打印到控制台 -->
		<property name="hibernate.show_sql">true</property>
		<!-- 将hibernate生成的sql语句格式化(语法缩进) -->
		<property name="hibernate.format_sql">true</property>
	
		<property name="hibernate.hbm2ddl.auto">update</property>
		<!-- 引入orm元数据
			路径书写: 填写src下的路径
		 -->
		<mapping resource="com/iteason/domain/User.hbm.xml" />
		
	</session-factory>
</hibernate-configuration>

这是单配置hibernate,配置hibernate与spring整合时,需要把sessionFactroy对象交给spring管理

方案一,在applicationContext.xml中配置,仍使用外部的hibernate.xml配置文件

<!-- 加载配置 方案1、使用外部的hibernatr.cfg.xml配置信息-->
		 <bean name="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
			<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
		</bean> 

方案二:在applicationContext.xml中配置,不使用外部配置

<!-- 加载配置 方案2、在spring容器中配置 -->
		<bean name="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
			<!-- 配置基本信息 -->
			<property name="hibernateProperties">
				<props>
					<prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
					<prop key="hibernate.connection.url">jdbc:mysql:///ssh_crm</prop>
					<prop key="hibernate.connection.username">root</prop>
					<prop key="hibernate.connection.password">123</prop>
					<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
					<prop key="hibernate.show_sql">true</prop>
					<prop key="hibernate.format_sql">true</prop>
					<prop key="hibernate.hbm2ddl.auto">update</prop>
				</props>
			</property>
			<!-- 引入orm元数据 ,指定orm元数据所在的包路径即可-->
			<property name="mappingDirectoryLocations" value="classpath:com/iteason/domain"></property>
		</bean>

引入c3p0连接池,注意要在src下配置好c3p0-config.xml

 	
		 <!-- 配置c3p0连接池 -->
		 <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"></bean>
		 

在sessionFactory中,多加一行配置,并删除下面四个数据库连接配置,由连接池管理

<!-- 将连接池注入到sessionFactory中 -->
			<property name="dataSource" ref="dataSource"></property>
			

书写dao实现类,基础HibernateDaoSupport

在applicationContext.xml中配置好UserDaoImp

 

 

配置aop事务

<!-- 配置通知 -->
		<tx:advice id="txAdvice" transaction-manager="transactionManager">
			<tx:attributes>
				<tx:method name="save*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false" />
				<tx:method name="persist*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false" />
				<tx:method name="update*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false" />
				<tx:method name="modify*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false" />
				<tx:method name="delete*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false" />
				<tx:method name="remove*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="false" />
				<tx:method name="get*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="true" />
				<tx:method name="find*" isolation="REPEATABLE_READ" propagation="REQUIRED" read-only="true" />
				</tx:attributes>
		</tx:advice>
		 <!-- 织入切点 -->
		 <aop:config>
		 	<aop:pointcut expression="execution(* com.iteason.serviceimp.*ServiceImp.*(..))" id="txPc"/>
		 	<aop:advisor advice-ref="txAdvice" pointcut-ref="txPc"/>
		 </aop:config>

注解方式配置aop事务

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

在serviceimp层的配置为:

@Transactional(isolation=Isolation.REPEATABLE_READ,propagation=Propagation.REQUIRED,readOnly=true)
public class UserServiceImp implements UserService {

	private UserDao ud;
	
	
	@Transactional(isolation=Isolation.REPEATABLE_READ,propagation=Propagation.REQUIRED,readOnly=false)
	@Override
	public void saveUser(User u) {
		 ud.saveUser(u);
	}


	public void setUd(UserDao ud) {
		this.ud = ud;
	}

 

在web.xml中配置扩大hibernate的session作用范围,注意要配置在struts2的filter之前

<!-- 扩大session作用范围 -->
  <filter>
  	<filter-name>openSessionInView</filter-name>
  	<filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>openSessionInView</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping> 

 

 

 

韩顺平Spring笔记之ssh整合.doc 立即下载

相关推荐

基于SSH框架的学生成绩管理系统源码+数据库,Struts2、Spring与Hibernate整合应用,实验报告

1) 整合Struts2、Spring和Hibernate框架 (2) 实现“登录”功能 (3) 实现“学生信息管理”功能 (4) 实现“学生成绩管理”功能 (5) 实现分页功能 基于SSH框架的学生成绩管理系统源码+数据库,Struts2、Spring与Hibernate整合应用,实验报告

SSH的整合

SSH的整合配置web.xml版本,导入相关依赖SSH集成导入ehcache.xml导入日志文件log4j2.xmlstruts2的配置spring的配置集成hibernatess整合SSH分模块开发完成增删改查切面切在Biz层上与在Dao层上的区别 配置web.xml版本,导入相关依赖 web.xml <web-app xmlns="http://xmlns.jcp.org/xml/ns/...

water_java的博客 354

EVE-NG 新增 qcow2 镜像教程

本文介绍了如何在 EVE-NG 网络仿真平台中添加 QCOW2 镜像并配置 YML 文件。首先,用户需要了解 EVE-NG 的目录结构,上传并重命名 QCOW2 镜像,然后设置文件权限并刷新界面以识别设备。接着,讲解了 YML 文件的作用,它用于定义设备的CPU、内存、网卡等参数,并给出了配置示例。若有多个设备版本,可以通过复制并重命名 YML 文件使其独立显示。最后,通过检查 QEMU 进程和日志验证 YML 配置是否生效。总结部分强调了 EVE-NG 的自动识别机制以及独立管理设备版本的方式。

qq_41862216的博客 3079

Spring总结(SSH)

1,环境搭建一个难点, SSH准备工作:hibernate.cfg.xml,struts.xml,web.xml,applicationContext.xml(Spring的配置文件), (net.xinqushi.action,各个包) MysqlDialect这个是比较老的,如果你是用的mysql5,最好是用MySQL5Dialect, 后面的方言是针对mysq...

龚道松 396

中文文本纠错实战:pycorrector与kenlm的安装与高效使用指南

本文提供了一份详细的中文文本纠错实战指南,重点介绍了pycorrector与kenlm的安装与高效使用方法。内容涵盖从编译环境准备、依赖安装到核心参数调优、批量处理及领域自适应等全流程,旨在帮助开发者快速部署并优化纠错系统,提升中文文本处理的质量与效率。

weixin_29055699的博客 411

一种基于改进YOLOv8并与ORB-SLAM3融合的动态环境密集点云同步定位与建图(SLAM)方法

文章提出了一种基于改进 YOLOv8 与 ORB-SLAM3 融合的动态环境稠密点云 SLAM 方法,通过引入GSConv 卷积模块和VoVGSCSP 特征融合模块优化 YOLOv8 的轻量性,结合实时目标检测与语义分割技术去除动态特征点,显著提升了动态场景下的位姿估计精度。

2401_87345388的博客 1942

JavaEE框架---Spring第四部分(SSH整合)

                           1.2SSH整合方式一:无障碍整合 1.2.1SSH框架回顾 1.2.1.1SSH框架整合开发回顾 1.2.2SSH整合 1.2.2.1第一步:创建web项目,引入jar包 Struts2的jar包 struts-2.3.24\apps\struts2-blank\WEB-INF\lib\*.jar Strut...

TDOA1024的博客 352

个人信息保护合规审计人员(中级)能力测试试卷

本文是关于个人信息保护合规考试的试题解析,内容涵盖《个人信息保护法》相关规定。试卷包含单选题、多选题、判断题、简答题和案例分析题五种题型,总分100分,考试时间120分钟。试题重点考察个人信息处理的基本原则、敏感个人信息处理要求、合规审计流程、个人信息保护影响评估等内容。通过案例分析题详细解析了人脸识别登录、数据共享、跨境传输等场景下的合规要求。参考答案均严格依据《个人信息保护法》等法律法规,为个人信息处理活动提供了明确的合规指引。

qq_41525079的博客 857

SSH (struts2 + spring + hibernate) 框架整合

搭建思路 导入所需要的pom依赖 几大框架的配置文件(web.xml/struts.xml、hibernate的配置、spring的配置) spring与hibernate整合桥接的配置文件替换掉了hibernate.cfg.xml 配置struts.xml 做测试 1、导入所需要的pom依赖 注意:导入依赖时需要分批次的导入下载,避免夹包冲突 <project xmlns="http:...

wx1762813417的博客 532

2021年J题:基于STM32F103的周期信号波形识别与参数测量系统设计(立创EDA+SZPT_ZXL)

本文详细复盘了2021年全国大学生电子设计竞赛J题获奖项目,手把手教你如何基于STM32F103微控制器设计并实现周期信号波形识别与参数测量系统。文章深入剖析了硬件电路设计(包括程控放大、工作点抬升与滞回比较器)与核心软件算法(如动态采样、FFT频谱分析与波形识别逻辑),并分享了DMA传输、FFT库使用等实战要点与避坑指南,为嵌入式信号处理与电赛备赛提供了宝贵经验。

weixin_32673065的博客 230

基于qiime2的16S数据分析全流程:从导入数据到下游分析一条龙

基于qiime2的16s测序数据分析分析激活qiime环境我已经把上面这句代码放在了.bashrc里面,因此激活qiime2环境只需要运行activate_qiime即可/bin/bash# 设置目录路径# 输出表头 echo -e "sample-id\tforward-absolute-filepath\treverse-absolute-filepath"# 遍历_R1和_R2文件do # 检查R1文件是否存在then# 获取样本ID(去掉_R1.fastq.gz)

2301_76771985的博客 5528

SSH整合的 所有jar包

整合版本 struts-2.3.37-all spring-framework-3.2.1.RELEASE hibernate-distribution-3.6.4.Final-dist 第一步:jar包整合 Struts的jar包 Spring的jar包 基础:4+1 , beans、core、context、expression , commons-logging AOP:aop联盟(aop...

libiubiu1的博客 1629

CDR插件开发之CPG插件017 - 在VS2019中实现CPG插件调试(自动写入CPG、自动启动CDR)

在上篇文章中,讲解了图像导出实例:当文档打开后,自动导出当前页面的图像到系统临时文件夹。在代码编写过程中,导出图像路径变量tmpFileName 被修改了很多次,有没有办法实现调试功能,通过控制台打印变量,而不用编译成CPG后再通过消息框来调试?当然是可以的。本篇作为单独篇,以CDR X8版本为例,讲解CPG插件在VS2019中实现调试的具体方法。 工程搭建准备 按照惯例,本篇文章的序号为017,请直接拷贝上一个工程016-export-image(拷贝前最好清理掉 Debug、x64等编译目录..

Zebe 1811

图文教你整合最新版本搭建SSH框架之一:spring(非常详细)

SSH框架搭建由于配置过程会使用到很多图片,如果都写在一篇的话,会显得过于冗长,因此搭建过程分为几个博文来写,最终的框架项目我放到整合的那一篇博文中配置spring1.首先找到官网,百度输入spring下载搜索即可 2.打开进入网站,找到下图的这个链接 3.点击后进入在网页中搜索Zip Files,找到如图链接 4.进入后即可看到各个版本的spring框架包,选择最新版本5.选择 dist

庄志锋的博客 3993

学Simulink--基础储能管理场景实例:基于Simulink的储能SOC均衡控制策略仿真

本文完成了基于 Simulink 的储能 SOC 均衡控制策略仿真,实现了:✅掌握并联系统 SOC 分化机理✅构建基于电流重分配的主动均衡架构✅验证均衡对系统可用容量的显著提升✅实现 SOC 偏差 < 2% 的高精度控制。

amy_mhd的博客 85

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

框架学习(四)Spring框架之SSH的整合开发

d

stack_xman的博客 215

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SSH2整合案例

第一次整合SSH2,参考了很多资料,辛苦颇多,遂记下来与大家分享一个菜鸟的成长。 开发环境:eclipse (我个人很喜欢) SSH2版本:struts-2.3.4.1,hibernate-distribution-3.6.0.Final,spring-framework-2.5.6 服务器:apache-tomcat-7.0.29 参考步骤: 1.新建测试数据库(我采用的是m...

diangun4457的博客 181

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Spring3.1+Hibernate3+Struts2的最新整合所需要的jar包

Spring3.1+Hibernate3+Struts2的最新整合所需要的jar包 方法/步骤 Spring的基本jar包: 1.org.springframework.web-3.1.4.RELEASE.jar:      在web.xml中配置启动Spring容器所需,包括上下文(参数contextConfigLocation

shenghua 1119

Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程

本文提纲:本文通过一个用户注册的实例讲解SSH的整合。创建Struts项目,整合Hibernate,整合Spring。最后总结如何熟练创建SSH项目。 仅是创建SSH项目,对于其他的扩展例如Struts的国际化,Hibernate的缓存优化,Spring的AOP等,本博文涉及不到。想学习更多的东西请搜索其他博文。 本项目的环境:Windows 8-64位,Eclipse Indigo Servi

nicemycsdn的博客 880

[ SSH框架 ] Spring框架学习之一

一、Spring概述 1.1 什么是Spring   Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由 Rod Johnson在其著作 Expert One-On-OneJ2 EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架...

83

Spring入门第十二讲——Hibernate-5.0.7+Struts-2.3.24+Spring-4.2.4三大框架纯注解方式的整合

还记得我在《Spring入门第十讲——Hibernate-5.0.7+Struts-2.3.24+Spring-4.2.4三大框架整合开发》这一讲中介绍SSH三大框架整合的时候,说过这三个框架的整合一共有三种方式,其中前两种方式已经讲过了,本讲介绍第三种方式,即纯注解的方式。 搭建SSH注解开发的环境 创建web项目,引入jar包 创建一个web项目,例如ssh3,并引入相关的jar包,那到底引入...

李阿昀的博客 946

关于SSH环境的搭建

博文原址:http://blog.youkuaiyun.com/yeohcooller/article/details/9316923#http://zz.youkuaiyun.com/bin/logs.php#0-tsina-1-54787-397232819ff9a47a7b7e80a40613cfe1 确实好久没有写过了,一直以来把写博文当作自己学习的总结,当作做过的笔记,随时都可以拿出来看看。不过最近习惯了用O

yongbuyanqi88888的专栏 1049

10分钟详解Spring全家桶7大知识点

Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶。它包括SpringMVC、SpringBoot、Spring Cloud、Spring Cloud Dataflow等解决方案。 很多研发人员把spring看作心目中最好的java项目,没有之一。 所以这是重点也是难点,工作中必须会,面试时肯定考。

x1ao_fe1的博客 1267

Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程 (copy)

本文提纲:本文通过一个用户注册的实例讲解SSH的整合。创建Struts项目,整合Hibernate,整合Spring。最后总结如何熟练创建SSH项目。仅是创建SSH项目,对于其他的扩展例如Struts的国际化,Hibernate的缓存优化,Spring的AOP等,本博文涉及不到。想学习更多的东西请搜索其他博文。本项目的环境:Windows 8-64位,Eclipse Indigo Service

system_esc的专栏 1585

spring_SSH整合之_架构的历史(架构整合JSP+Hibernate+Spring+Struts2)_7

hibernate-3.6.0+struts2-2.3.32+spring4.0.0+所用的包如下: antlr-2.7.6.jar aopalliance-1.0.jar aspectjrt.jar aspectjweaver.jar c3p0-0.9.1.jar commons-collections-3.1.jar commons-dbcp-1.4.jar commons-f

辐_射的博客 607

Spring(三):Spring整合Hibernate

背景:   本文主要介绍使用spring-framework-4.3.8.RELEASE与hibernate-release-5.2.9.Final项目整合搭建的过程。   开发环境简介:     1)、jdk 1.8     2)、spring-framework-4.3.8.RELEASE、hibernate-release-5.2.9.Final 引入Spr...

weixin_30779691的博客 83
上一篇: Spring Framework(6)-Spring Bean的生命周期
下一篇: Ajax异步配合数据字典完成下拉选框
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值