Struts+Spring+Hibernate 的架构整合

SSH框架整合实战:Struts2、Hibernate、Spring的集成与测试 Struts2框架作为企业级Java Web应用的首选框架之一,凭借其强大的功能和灵活的配置,得到了广泛的使用。本章节将详细介绍Struts2框架的基本组成、核心组件的作用、HTTP请求的处理流程以及Struts2中的Action和拦截器。Hibernate是一个全功能的ORM(对象关系映射)框架,它将Java对象映射到数据库表,提供了一种面向对象的方式来操作数据库。Hibernate框架简化了基于Java的应用程序与数据库交互的复杂性。 阅读详情

本文摘自:http://www.paper.edu.cn/  一种基于Struts+Spring+Hibernate的整合 付强,黄孝建 北京邮电大学,北京 100876

 

 

一. SSH框架的整合

 

        综合分析了Struts, Spring 与Hibernate 各自的优点与不足,将这三个架构有效整合在一起,Struts 框架有成熟的标签库,所以Web 层主要由Struts 框架实现;而Spring 框架同Struts 框架能够完美的结合,并且在事务管理和依赖注射方面有着独到之处,因此主要用于业务逻辑层;在数据持久层方面主要采用Hibernate,实现O/R Mapping,对JDBC 进行了轻量级的对象封装, 建立Java 对象模型的持久对象。

        struts+spring+hibernate 应用开发框架利用Struts 架构作为系统的整体基础架构,它负责了MVC 的分离,而在Struts 架构的模型部分,利用Hibernate 架构来提供持久层支持,业务层用Spring 支持。具体做法是用面向对象的分析方法根据需求来提出一个模型,将这些模型采用Java 语言实现出基本的Java 对象,然后写出基本的DAO 接口,并给出Hibernate 的DAO 实现,采用Hibernate 架构实现的DAO 类来实现Java 类与数据库之间的转换和访问,然后由Spring 来完成业务逻辑。让Struts 负责降低系统总架构的藕合性,让Spring 负责复杂的业务逻辑处理,让Hibernate 负责降低业务模型部分的开发难度。结合之后得到的好处是采用这个集成架构开发出来的信息系统无论是在整体架构上还是在局部的复杂业务模型中都有了更低的祸合性,它们的灵活性与可维护性也得到了提高,从而消除了单独使用这些架构开发系统的不足。其整合后架构图如下图所示:

 

二. SSH框架的工作流程分析

 

        Struts 作为一个表示层框架,用户在表示层上的一个操作看起来只是作用在表示层,但实际上要完成页面上的一个操作还必需依赖于业务逻辑层和数据持久层的帮助,如表示层页面显示所需要的数据就需要业务逻辑层判断需要让数据持久层提取什么样的数据,同时数据持久层在提取或者存储数据时又需要业务逻辑层框架Spring 来实现事务控制、异常处理等。所以用户在表示层页面上的一个操作就会涉及到这三个框架的一个整体协作过程下面将详细介绍互协作的过程。

        首先,用户在页面上执行一个动作,触发Struts 框架接受这个动作,并迅速在自己的配置文件(Struts-confif.xml)中查找该动作所匹配的Action,找到匹配action 之后,就查看它所有的配置模块中的属性validate 是否为true,若是真则要启动数据验证框架对属性name 所指定的ActionForm 进行数据验证。当验证通过或者属性值为fasle,则使用属性type 所指定的Action 类来处理。在本系统中由于要和业务逻辑层的框架Spring 整合,所以在配置文件中所使用的Action 类都是使用的Spring 框架中所封装的代理DelegatingActionProxy,使用该代理类可以使得业务流程的控制权由Struts 转移给Spring。

        当系统调用Spring 的代理类时,系统的控制权由Spring 框架获得,之后就会在自己框架的配置文件(applicationContext.xml)中查找第一步中Struts 框架所实际调用的Action 类。此时就可以使用Spring 的特性依赖注入(IOC) 向Action 自动注入一个继承了HibernateDaoSupport 类的userDAO 类型实例,该实例由用户编写,里面封装了系统所需要的各类处理业务逻辑的方法以及获取和存储数据的代码。同时在编写该实例中关于操作数据的代码时就会启Hibernate 框架,完成数据持久化的功能。而且Hibernate 框架可以使用在Spring 框架中封装的HibernateDaoSupport 类所拥有的一些方法,这样既简化了持久化代码的编写,同时由于整个流程由Spring 框架控制,该框架就类似于一个简化的EJB 容器,就可以使用它面向方面的编程(AOP)的特性实现Struts, Hibernate 有关事务以及安全的控制,也可以利用它依赖注入(IOC)的特性动态的加载数据源,完成Hibernate 的初始化工作。最后当匹配的人ction 执行完成之后,又返回相应的页面呈现给用户,此时系统控制权又转移给Struts。

        综上所述可以看出Struts 通过同Spring 的融合,方便的将自己的业务逻辑交给Spring来处理,并借助Spring 的控制,使的数据处理的正确性大大提高。Spring 框架在整各系统流程控制中起到了重要的作用,它就类似一个简化的轻量级的EJB 容器,拥有EJB 容器相同的功能,但是实现这些功能所需要的资源和费用却大大减少,效率却显著提高。Hibernate在这个框架容器的控制下实现了数据持久层的功能,同时由于处在这个框架容器中,还借助该框架的特性实现了事务以及安全的控制。

 

 

 

 

 

 

Pi0 项目复现及项目问题解决方案(全网抢先发布~) 阅读详情

相关推荐

QTableView为例:Qt模型视图委托(MVD)(Model-View-Delegate)

QT中的MVD(模型-视图-委托)模式是一种类似于MVC的设计模式,将数据、界面和交互逻辑分离。模型负责数据管理,视图负责显示界面,而委托则嵌入在视图中处理数据的显示和编辑。QT提供了多种视图组件(如QListView、QTreeView、QTableView)和模型类(如QStandardItemModel、QAbstractItemModel),支持数据的多样化呈现。委托(Delegate)通过定制显示和编辑行为增强了视图的灵活性。该模式适用于各类数据结构展示(列表、表格、树形),能够高效处理数据与界面

菜一头包的博客 1988

struts+spring+hibernate是怎样的架构?

 假如我要盖一件小平房(做一个网站),我需要做的是: 1:买一块地。(租一台服务器)--1天 2:申请一个门牌号码(买一个域名)--1天 3:买材料,请2、3个工人,开始盖房(准备所需要的开发工具IDE什么的,搭建测试环境,找2,3个程序员--刚毕业的大学生就可以了)。--1周 4:盖房(敲代码编程)--1到3个月。 5:房子盖好了,东敲敲西敲敲看牢不牢固(自己测试一下功能都齐全了没)--1周。

432

商品评论中的实体情感分析

在之前的文章中我已经将商品评论中的评价实体,也就是特征(feature)给挖掘出来了,我看了一下,挖掘的效果还是不错的。原文链接:http://blog.youkuaiyun.com/chixujohnny/article/details/52794685 下面一步要做的是施加情感因子,也就是说,要将人们评论时候所连带的感情程度施加一下。这项任务的归类应该是情感分析技术。 目前该类问题的情感分析技

chixujohnny 7971

SpringBoot框架详细介绍

SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性[IOC AOP DI],而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决springboot:----为了简化spring工程的初始化搭建和开发过程。

不惧困难 顽强拼搏 5万+

Python实战:用MNE-Python从脑电数据中提取P300成分(附完整代码)

本文提供了一份使用MNE-Python从脑电数据中提取P300成分的完整实战指南。通过详细的代码示例,系统讲解了从环境搭建、数据加载、预处理(滤波、分段、伪迹剔除)到P300波形提取、可视化与参数量化的全流程。重点介绍了如何利用零相位滤波和叠加平均技术,从EEG信号中精准分离出反映认知加工的P300事件相关电位,适用于脑机接口与认知神经科学研究。

weixin_29240343的博客 338

Autowired的使用介绍

我们都知道在spring中@Autowired注解,是用来自动装配对象的。@Service@Autowired没错,这样是能够装配成功的,因为默认情况下spring是按照类型装配的,也就是我们所说的byType方式。此外,@Autowired注解的required。

白话机器学习 1349

【SpringBoot】SpringBoot的初步入门

Spring是为了解决企业级应用开发的复杂性而创建的,简化开发简化开发,约定大于配置!!能迅速的开发web应用,几行代码开发一个http接口。技术框架的发展都遵循了一条主旋律:从一个复杂应用场景衍生一种规范框架,人们只需要进行各种配置而不需要自己去实现他,这时候强大的配置功能成了优点;发展到一定程度之后,人们根据实际生产应用情况,选取其中实用功能和设计精华,重构出一些轻量级的框架;

杨DaB的博客 5814

国产PHY芯片YT8512H替代LAN8742A的实战指南(STM32F407平台)

本文详细介绍了在STM32F407平台上,使用国产PHY芯片YT8512H替代LAN8742A的完整实战过程。文章深入剖析了硬件设计中的关键信号连接差异(如CRS_DV与RXDV复用)、时钟布线要点,并提供了软件驱动修改、PHY配置及调试排错的系统指南,旨在帮助工程师高效完成国产化替代,规避常见陷阱。

defi6farmer的博客 854

SpringBoot架构

Spring Boot用来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用。随着Spring全家桶时代的到来,SpringBoot给我们带来了J2EE一站式解决方案,SpringCloud给我们带来了分布式整体解决方案。从此我们可以使SpringBoot 快速的开发基于 Spring 框架的项目,由于围绕 SpringBoot 存在很多开箱即用的 Starter 依赖,使得我们在开发业务代码时能够非常方便的、不需要过多关注框架的配置,而只需要关注业务即可。

m0_58212960的博客 3586

【论文复现】——基于改进FPFH特征提取的点云模板匹配方法

基于改进FPFH特征提取的点云模板匹配方法 [J]. 应用激光, 2024, 44 (04): 196-204.

点云侠的博客 611

AUTOSAR系统服务篇 - BswM的使用

本文档是对4.0.3版及更高版本的AUTOSAR模式管理应用的介绍。其主要目的是为AUTOSAR的用户和开发人员提供基于示例的AUTOSAR模式管理不同方面的详细概述,这些示例在文中进行了解释。本文中的代码清单共同构成了示例ECU的配置。第2章解释了基础的模式管理概念,例如一般的模式、如何实现模式切换、模式管理者和模式用户的角色等。其次介绍了应用模式管理和基础软件模式管理的依赖关系,两者密切相关。基础软件模式管理器是AUTOSAR R4.0中的中央模式管理模块。它具有很高的可配置性。

IOT2017的博客 846

springboot项目架构

在 Spring Boot 出现之前,使用 Spring 框架开发应用程序时,开发人员需要花费大量时间进行复杂的配置,包括配置各种 XML 文件或者 Java 配置类来整合 Spring 的各个模块,如 Spring MVC、Spring Data 等。Spring Boot 的目标就是简化这一过程,减少配置的复杂性,让开发者能够快速启动项目并专注于业务逻辑的实现。本文围绕 Spring Boot 展开。

geejkse_seff的博客 1705

手机端实时检测:YOLOv8n轻量化改进,骁龙865上35FPS,mAP+3.2%

YOLOv8n-Lite的改进不是简单的“砍通道、降分辨率”,而是结合手机端硬件特性(NPU加速、内存限制)和场景需求(小目标检测),通过“卷积拆分减少计算、通道瘦身适配内存、特征强化保留精度”的协同策略,在骁龙865上实现35FPS实时性与mAP+3.2%的双赢。该方案已在手机端AR应用中落地,支持实时手势识别、物体测量等功能,功耗比原始模型降低40%(连续检测1小时仅耗电12%)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 723

Struts+Spring+Hibernate的技术实现

一、三个框架简介 Struts: Struts是目前Java Web MVC框架中不争的王者。经过长达五年的发展,Struts已经逐渐成长为一个稳定、成熟的框架,并且占有了MVC框架中最大的市场份额。 Spring: Spring是一个开源框架,它是为了解决企业应用开发的复杂性而开发的。Spring使使用基本的JavaBeans来完成以前只可能由EJB完成的事情变得可能了。...

hbczzsw的专栏 106

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SSH之IDEA2017整合Struts2+Spring+Hibernate

推荐大家使用maven解决依赖问题,可以省去手动解决依赖的问题,项目参考:链接 摘要 IDEA无疑是Java编程的利器,在下面我们将介绍如何使用IDEA来整合SSH(Struts2 + Spring + Hibernate);介绍將分为三个部分来讲,分别是新建工程,Spring引入并测试, Hibernate引入并测试,Struts2引入并测试; 下面使用的IDEA的版本是2017.1 以下...

kevin的专栏 3万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Spring与Hibernate、Struts、Log4j整合

        SSH+Log4j是比较经典的Web解决方案,它们每一个框架都自成体系,致力于解决不同层次和领域的各种问题,把他们整合在一起可以发挥各自的专长,实现优势功能最大化。每一个框架在设计时就为不同的框架融合预留了解决方法,因此只要方法得当,这些框架是可以完美融合的。hibernate、struts和log4j之间并不存在很明显的交叉关联,因此框架整合主要是spring与hibernate、spring与struts、spring与log4j之间的整合,以下分别介绍说明。本文使用的框架版本分别为:s

boral_li的专栏 4528

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring、Struts2、Hibernate整合

一、   Struts 2框架整合Spring步骤 工作之后这些框架很久都没接触了,作为备忘,记录一下,以后用到的时候方便查看 1、 复制文件。复制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目录下。其中的x对应了Spring的版本号。还需要复制commons-logging.jar文件到WEB-INF/lib目录下。

hantianjie_的专栏 999

SSH框架(Struts2+Spring+Hibernate)搭建整合详细步骤

​ 在实际项目的开发中,为了充分利用各个框架的优点,我们通常都会把Spring与其他框架整合在一起使用。本节将针对 SSH(Struts2、Hibernate和 Spring)框架的整合内容进行详细讲解。 ​

unber的博客 2516

struts2+spring4+hibernate5整合实例

struts2作为一个很传统的mvc框架,在一些项目中,仍然发挥着重要的作用,另外hibernate和spring的结合也是很常见的,这里介绍struts2+hibernate5+spring4的整合,因为struts2支持最高的spring是4版本,所以这里采用的是spring4。整合的思路比较简单,可以从struts2+spring整合,然后接着整合hibernate+spring。也可以反过...

feinifi的博客 1777

IntelliJ IDEA 下Spring整合Struts2、Hibernate

1. 整合原理: Spring与Struts2整合实际上是将Action对象交给Spring容器来负责创建。 Spring与Hibernate整合就是将sessionFactory交给Spring来负责维护,以及Spring维护session和aop事务。 2. 需要导入的特殊jar包 Hibernate中 java persist api java的持久化规范(接口) MySQL数据...

Coder Wang 2015

Struts2+Hibernate+Spring 整合示例

Struts2+Hibernate+Spring 整合示例 Spring整合Struts2、Hibernate原理概述:         从用户角度来看,用户发出HTTP请求,当MVC框架的控制器组件拦截到用户请求时,将调用系统的业务逻辑组件,业务逻辑组件则调用系统的DAO组件,而DAO组件则依赖于SessionFactory和DataSource等底层组件实现数据库访问。

TKD03072010的专栏 2万+

Struts2+Spring+Hibernate整合的例子

最近学习了Struts2,Spring,Hibernate的内容。并做了一个简单的消息发送的例子,因为系统很小,所以也不好意思叫系统。虽然例子简单,但SSH整合的基本内容都包含了。就记录下来,方便以后查阅。 这个是系统的基本需求。 用户能够发送消息(多选用户进行群发),查看自己的收件箱(其实是看自己接收到的消息),查看发件箱(查看发送消息记录)。用户进行分组,每个分组也可以包含多个子分组。

u010585448的专栏 3498

Struts2、spring、hibernate框架整合

Struts2、spring、hibernate框架整合一、整合原理二、导入依赖包2.1 hibernate包2.1.1 hibernate/lib/required2.1.2 hibernate/lib/jpa | java persist api java的持久化规范(接口)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200205122954250.p...

tianzhen620的博客 336

SSH三大框架搭建整合struts2+spring+hibernate

SSH框架整合理论: 在SSH框架的JAVAweb项目的开发过程中,WEB层通常使用的是Struts2+jsp,service层使用的是javaBean,DAO层使用的是hibernate,而spring的使用覆盖三层。 使用了spring框架之后,我们可以把对象交给spring来管理。在WEB层中,所有action对象的创建和管理都可以交给spring来完成,这样Struts2就不用自己来new...

子非鱼的博客 1081

Spring(之三)-- Spring整合Struts,Hibernate

Spring整合Struts在web应用中创建Spring容器有如下两种方式: 直接在web.xml文件中创建Spring容器 利用第三方MVC框架的扩展点,创建Spring容器 对于轻量级的JavaEE应用,工厂模式是更实际的策略,业务逻辑不是EJB,通常是一个POJO,业务逻辑组件的生成通常由工厂负责,而且工厂可以保证该组件的实例只需要一个就够了,可以避免重复实例化造成的系统开销。下面是采用工厂

祭夏的专栏 622

Spring整合Struts2和Hibernate5

Spring整合Struts和Hibernate 一. 整合方式分类 1.零障碍整合(带hibernate的配置文件) 2. 不带有hibernate配置文件 二. spring的整合的思想 将Struts中和hibernate中需要创建的对象和配置文件中的信息整合到spring中 Hibernate中的sessionFactory 三. 具体的实...

ѧѦ ѧ 775
上一篇: MVC+DAO设计模式
下一篇: 学习Java Bean
IMFuckingHigh
博客等级 码龄18年 85粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值