用自己的话分别谈谈对 struts2,spring,Hibernate的理解

Struts2+Hibernate+Spring框架整合开发实践 本文还有配套的精品资源,点击获取 简介:Struts2、Hibernate和Spring是Java开发中广泛使用的三大轻量级框架。Struts2负责前端交互和业务逻辑分离,Hibernate简化数据库操作,Spring提供全面的后端服务。整合这些框架能够构建出高效、松耦合的企业级应用,降低开发难度,提高效率。本实践项目涵盖了MVC模式、对象关系映射、依赖注入、面向切面编程等... 阅读详情

作者:醋酸洋红链接:https://www.zhihu.com/question/38238326/answer/75588759来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


某人提出的问题:大家好,我是应届毕业生,我在找工作时候,面试官问我:用自己的话分别谈谈对 struts2,spring,Hibernate的理解,我应该怎么说啊?求高人指点。(不要那些官方语言)

这是我的回答:

Struts2 是基于 Filter 进行跳转控制的工具,封装了从不同请求路径到不同程序的分发过程。我个人觉得这种分发应该根据系统的预期复杂程度来决定是否使用。毕竟,基于反射的框架工具,都会带来执行速度的缓慢。这意味着同样规模的用户,服务器需要消耗避免反射型框架十倍以上的内存。  对于页面跳转,我个人认为应该将软件结构设计成网络传输与数据功能分开的模式。这种模式意味着,同一种网络请求,就对应某一个程序程序。由这些和访问直接对应的程序方法来进行各种功能的组合调用。这么做是因为,在实际系统中,这种组合而来的功能流程,对于一个系统来说,是几乎不会临时改变的。就算能够改变,也不方便通过让实施人员调整配置文件来达成这种变化。  另外,如果网络和客户端(运行 JavaScript 的浏览器本身也可以理解为一种客户端)的数据交互,如果能够提纯,也就能在一定程度上解决对复杂跳转控制的依赖,从而不使用 Struts 及类似产品。具体单页面应用的有关内容,有机会再说吧。

Spring 主要的功能是对象依赖关系的注入,以及方法执行前、后的监视(切片)。在实现途径上,通过 Spring 执行的每一个方法,都不是直接执行,而是通过代理程序的方式。这严重损害了服务器性能。  还是刚才的观点,我认为软件结构的设计,可以避免很多系统曾经出现的问题,比如依赖层次过多造成人工控制困难,等。  通过 Spring 进行切片是一个具备很高开发效率的方式。不过因为性能严重低下,所以内网系统可以考虑。公网系统,则应该通过可配置的模块化功能执行流程,来避免代码重复编写。Hibernate 是对象-关系转换工具,并且能够在软件层面实现分布式事务。不过就像 Spring 一样,其性能也完全无法得到保证。我之前没有研究过分布式事务如何实现。不过考虑到数据安全问题,现实中数据库一般并不会向外网透露。这造成了分布式事务在绝大多数项目中缺乏实用意义。对象-关系转换,其实也是因为 Java 对于数据处理的僵死,不像现在新语种那样能够轻松往已经存在的对象中添加属性。  可以考虑自定义基于 Map 的数据结构,以简便地和关系型数据库进行对应。这样能够很大程度摆脱对对象-关系转换工具的依赖。

基于Struts 2、Hibernate和Spring的网络硬盘实现 本文还有配套的精品资源,点击获取 简介:网络硬盘项目利用Java三大企业级框架——Struts 2、Hibernate和Spring,实现了在线存储、管理和共享文件的高效网络硬盘系统。Struts 2处理用户请求并实现MVC架构中的交互,Hibernate简化数据库操作并实现ORM映射,Spring通过DI和AOP增强应用的灵活性。系统还包含文件管理、用户权限设置、性能优化... 阅读详情

相关推荐

精通SSH框架:Struts2+Spring2+Hibernate3综合指南

本文还有配套的精品资源,点击获取 简介:Struts2、Spring2 和 Hibernate3 组合形成了 Java Web 开发中的“SSH”三位一体,提供了完整的模型-视图-控制器(MVC)架构、事务管理和数据持久化解决方案。本课程旨在介绍这三个框架的核心概念、配置方法和在企业级应用中的协同工作方式,帮助开发者提升开发效率和系统的可维护性。 1. Strut...

weixin_34413326的博客 904

谈谈你对Struts的理解

struts2是一个按照MVC模式设计的一个web层的框架,其实它就相当于一个大的servlet.但是它和servlet是有区别的.servlet默认在第一次访问的时候创建,只创建一次,是单实例对象.struts2的action是多实例对象,每次访问的时候都会创建action对象 struts.xml配置文件中的package标签的namespace属性值和action标签里面的name属性值构...

不羁朔风的博客 2917

全面掌握Maven整合Struts2+Spring+Hibernate框架教程

简介:在现代Java开发中,利用Maven项目管理工具和SSH框架组合——即Struts2、Spring、Hibernate,可以高效构建可维护的Web应用程序。SSH框架提供了MVC架构支持,简化了业务逻辑、数据持久化和控制层的实现。本文将指导开发者如何在Maven环境下搭建SSH框架,包括理解Maven依赖管理、配置Struts2处理HTTP请求、设置Spring的bean和事务管理、以及整合Hibernate进行数据库操作。

weixin_36074800的博客 897

谈谈对struts2,hibernate,spring的理解

1

kkk_kkkk的专栏 438

谈谈你对Struts的理解。

   1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类。我们可以在web.xml文件中将符合某种特征的所有请求交给这个Servlet处理,这个Servlet再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的action去处理。    一个扩展知识点:struts的配置文件可以有多个,可以按模块配置各自的配置文件,这样可以防止配置文件的过度膨胀;    2. ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对象(就是一个java类,这个类中的每个属性对应一个请求参数),封装成一个什么样的formbean对象呢?看配置文件。    3.要说明的是, ActionServlet把formbean对象传递给action的execute方法之前,可能会调用formbean的validate方法进行校验,只有校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面,这个错误页面由input属性指定,(看配置文件)作者为什么将这里命名为input属性,而不是error属性,我们后面结合实际的运行效果进行分析。    4.action执行完后要返回显示的结果视图,这个结果视图是用一个ActionForward对象来表示的,actionforward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml配置文件为jsp页面设置的逻辑名,这样可以实现action程序代码与返回的jsp页面名称的解耦。

struts2+hibernate+spring框架搭建

1.struts2+hibernate+spring框架搭建 jar包和数据库都在里面 2.做了个简单的添加数据到数据库的例子,直接解压然后导入,部署就可运行 3.MVC模式,对扩展和维护都有好处 4.扩展的时候直接写配置文件就可以了,很方便 5.jar包可能有重复的,自己删除就可以了,但绝不少一个jar包

刚有人问面试题咋答,一时兴起回了下,关于对 Struts2, Spring 和 Hibernate 的理解

Struts2, Spring 和 Hibernate 的理解之我谈 某人提出的问题: 大家好,我是应届毕业生,我在找工作时候,面试官问我:用自己的话分别谈谈对 struts2,spring,Hibernate的理解,我应该怎么说啊?求高人指点。(不要那些官方语言) 我的回答: Struts2 是基于 Filter 进行跳转控制的工具,封装了从不同请求路径到不同程序的分发过程。我个

Shane from Spads 6575

Struts+Spring+Hibernate添加用户例子

Struts+Spring+Hibernate添加用户例子 源代码

Struts2, Spring 和 Hibernate 的理解之我谈

某人提出的问题: 大家好,我是应届毕业生,我在找工作时候,面试官问我:用自己的话分别谈谈对 struts2,spring,Hibernate的理解,我应该怎么说啊?求高人指点。(不要那些官方语言) 我的回答: Struts2 是基于 Filter 进行跳转控制的工具,封装了从不同请求路径到不同程序的分发过程。我个人觉得这种分发应该根据系统的预期复杂程度来决定是否使用。毕竟,基于反射的框架

y_dzaichirou的博客 461

Vivado ChipScope Debugging: Overcoming Common DRC Errors in FPGA Design

本文深入解析Vivado ChipScope调试中常见的DRC错误,特别是AVAL-244和AVAL-245等时钟相关问题,提供实用的Tcl命令解决方案和最佳实践。通过将DRC错误降级为警告的技巧,帮助FPGA设计者高效完成调试流程,同时强调何时应保留DRC检查以确保设计可靠性。

weixin_30335575的博客 416

手把手教你用STM32F103C8T6驱动HUB75 LED点阵屏(附74HC595级联代码)

本文详细介绍了如何使用STM32F103C8T6开发板驱动HUB75接口的LED点阵屏,包括硬件连接、74HC595级联代码、时序控制及灰度显示实现。通过实战案例展示动态文字显示和性能优化技巧,帮助开发者快速掌握LED点阵屏驱动技术。

weixin_42623010的博客 341

Struts2 Spring Hibernate 的简单整合

[程序开发]Struts2 Spring Hibernate 的简单整合 创建工程,选择java EE5 首先,加载Spring框架,如图:                                 为了便于以后添加新的应用,这里把spring所有的Jar包都添加了,下一步,要将Spring的配置文件创建在                WEB-INF目录下,或许不理它,到项目中去移动也可以...

convert_to的专栏 151

Apache Paimon-实时数据湖

Flink社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合,推出新一代的 Streaming Lakehouse 技术,促进数据在数据湖上真正实时流动起来,并为用户提供实时离线一体化的开发体验。Flink 社区内部孵化了 Flink Table Store (简称 FTS )子项目,一个真正面向 Streaming 以及 Realtime的数据湖存储项目。

m0_57307642的博客 2192

Struts2+Spring+Hibernate整合入门详解

[code="java"] 基本概念和典型实用例子。 一、基本概念 Struts:作为基于 MVC 模式的 Web 应用最经典框架,两个项目Struts 和webwork已经集成,成为现在的Struts2。目前的最新版本是2.0.9(2007-7)。 Spring: 是一个轻型的容器,利用它可以使用一个外部 XML 配置文件方便地将对象连接在一...

cpf1985的专栏 161

10X Genomics数据实战:手把手教你用Seurat处理单细胞PBMC数据(附完整代码)

本文详细介绍了如何使用Seurat处理10X Genomics的单细胞PBMC数据,从数据获取、质控到降维分析和细胞分群的全流程。通过实战代码演示,帮助研究者掌握单细胞RNA测序数据分析的核心技术,提升对细胞异质性的理解。

weixin_29053577的博客 253

使用 YOLO26 的牙科全景X光片分析:从牙齿检测到疾病诊断

从数据预处理自动化、模型架构针对性优化到基于视觉特征的性能分析。它证明了在医学图像分析中,模型架构的进步(如YOLO26的特性)可以有效缓解数据不平衡和目标微小的问题,为临床自动化诊断提供了一个高效、可靠的解决方案。Python"""全局配置模块包含数据集路径、类别名称、论文复现参数、划分比例等常量"""import os# ==================== 路径配置 ====================

u012133341的博客 102

Struts2+Spring2.5+Hibernate3整合例子

做了一个SSH整合的例子,包括spring事务的配置与hibernate延迟加载的配置以及对inverse和cascade的简单解释。希望对初学者有帮助,尽管我也是刚接触strust2,呵呵。 :) 这个例子是用IDEA 9.0做的,IDEA 8.0开始有了对struts2的插件支持,另外IDEA对spring和hibernate的支持插件也很强大。...

yangyu0227的专栏 156

计算电磁学(三)有限差分方法

有限差分方法(FDM)是一种数值处理方法,通过将偏微分方程变换为一组代数方程,通过求解代数方程组来得到原边值问题的近似值。由于有限差分法非常简单,所以也特别的稳定高效。其中时域有限差分方法(FDTD)是电磁分析中的常用方法。在计算电磁学中,常用有限差分方法(finite difference equations)来替代微分方程。一个有限差分法通常包括三个步骤将求解域划分网格用有限差分方程逼近给定的微分方程求解在给定边界条件和初始状态下的方程常用的网格模型方阵斜方阵三角阵圆形阵。

CCC_B的博客 1639

浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓

hibernate工作原理 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 ...

weixin_33763244的博客 129

AI颠覆市场调研:生成式智能体如何重构商业决策?

AI正在将市场调研从"成本中心"转变为"战略武器"。当企业能够用生成式智能体实时模拟百万级虚拟用户时,传统调研的样本偏差、时间滞后、成本高昂等问题将不复存在。对于开发者而言,这不仅是技术的狂欢,更是参与商业规则重构的历史机遇。行动建议立即体验Simile/Aaru的智能体平台,验证虚拟样本效果参与LLM持续性记忆架构的开源项目(如Memory Llama)关注AI调研API的标准化进程(如Hugging Face的Market Research Toolkit)

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 614

RK+linux教程:RK3588 RGA硬件加速在YOLOv5图像预处理中的深度应用教程

摘要: 本教程深入解析了RK3588芯片的RGA硬件加速器在YOLOv5图像预处理中的应用。通过专用硬件设计,RGA支持图像缩放、边界填充等核心操作,结合零拷贝技术显著提升处理效率。重点分析了LetterBox算法的RGA实现,包括参数计算、边界填充和性能优化,并与传统CPU处理对比,展示了RGA在高分辨率图像处理中的优势。教程还提供了统一的预处理接口设计,便于在OpenCV与RGA方案间灵活切换,为RK3588平台的深度学习部署提供实用优化方案。

LXY_LOVE36的博客 975

框架结合之Spring和struts2

第一步:从struts的jar包中struts-spring.jar包导入项目中。 TestAction.java内容:public class TestAction { private TestService testService; public void setTestService(TestService testService) { this.testServ

祥子的博客 1204

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java五大框架, 简述Spring, SpringMVC, Mybatis, HIbernate, Struts2

目录    1.Spring (业务层框架)   2.Hibernate (持久层框架) 3. MyBatis (持久层框架) 4. Struts2(表现层框架) 5. SpringMVC(表现层框架) 6. SpringMVC的工作流程 7. Strats2的工作流程 8. Mybatis 执行流程 9. Hibernate执行流程 10. Struts2 和 Spring...

qq_35003310的博客 6919

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Struts2+Hibernate+Spring 整合示例

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

TKD03072010的专栏 2万+

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

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

上一篇: 在 IT 外包公司工作有哪些优势和弊端?
下一篇: 为何你这么叼:22岁辞去年薪150万的工作
withtoNature
博客等级 码龄10年 20粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值