java三大框架struts+hibernate+spring学习总结

summerframework:基于Spring Cloud的微服务框架 夏季框架 SummerFramework是在Spring Cloud的基础上一些扩展 特征 用携程替换原生的配置中心,把Apollo的app.id,env等环境参数与Spring Boot参数统一 对服务注册,发现进行扩展,多维度服务发现,自动负载,A / B测试 对服务调用进行扩展,Feign Client接口面向接口声明式编程,A / B测试 对微服务下Metrcis打点,将微米和skywalking结合在一起,把日志-称为链-metrcis进行有效结合 对Web Api进行统一规范,规范化返回结果,异常,api版本 封装锁,提供注解式加锁,自定义锁失败处理以及多种锁的实现 编译 1:构建夏季框架 mvn clean install 2:构建夏季框架 ./install-all.sh 3:构建夏季框架发布 mvn clean install 快速开始 执照 根据Apache许可可以 立即下载

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页面名称的解耦。


Hibernate 

1. 面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象、建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程和操作怎么样,本质上都是要得到一个结果,程序上一个时刻和下一个时刻的运行结果的差异就表现在内存中的对象状态发生了变化。 
2.为了在关机和内存空间不够的状况下,保持程序的运行状态,需要将内存中的对象状态保存到持久化设备和从持久化设备中恢复出对象的状态,通常都是保存到关系数据库来保存大量对象信息。从Java程序的运行功能上来讲,保存对象状态的功能相比系统运行的其他功能来说,应该是一个很不起眼的附属功能,java采用 jdbc来实现这个功能,这个不起眼的功能却要编写大量的代码,而做的事情仅仅是保存对象和恢复对象,并且那些大量的jdbc代码并没有什么技术含量,基本上是采用一套例行公事的标准代码模板来编写,是一种苦活和重复性的工作。 
3.通过数据库保存java程序运行时产生的对象和恢复对象,其实就是实现了java对象与关系数据库记录的映射关系,称为ORM(即Object Relation Mapping),人们可以通过封装JDBC代码来实现了这种功能,封装出来的产品称之为ORM框架,Hibernate就是其中的一种流行ORM框架。使用Hibernate框架,不用写JDBC代码,仅仅是调用一个save方法,就可以将对象保存到关系数据库中,仅仅是调用一个get方法,就可以从数据库中加载出一个对象。 
4.使用Hibernate的基本流程是:配置Configuration对象、产生SessionFactory、创建session对象,启动事务,完成CRUD操作,提交事务,关闭session。 
5.使用Hibernate时,先要配置hibernate.cfg.xml文件,其中配置数据库连接信息和方言等,还要为每个实体配置相应的hbm.xml文件,hibernate.cfg.xml文件中需要登记每个hbm.xml文件。 
6.在应用Hibernate时,重点要了解Session的缓存原理,级联,延迟加载和hql查询。 
3、AOP的作用。

Spring 

1.Spring实现了工厂模式的工厂类(在这里有必要解释清楚什么是工厂模式),这个类名为BeanFactory(实际上是一个接口),在程序中通常BeanFactory的子类ApplicationContext。Spring相当于一个大的工厂类,在其配置文件中通过<bean>元素配置用于创建实例对象的类名和实例对象的属性。 
2. Spring提供了对IOC良好支持,IOC是一种编程思想,是一种架构艺术,利用这种思想可以很好地实现模块之间的解耦。IOC也称为DI(Depency Injection),什么叫依赖注入呢? 
譬如,Class Programmer 
{ 
Computer computer = null; 
public void code() 
{ 
//Computer computer = new IBMComputer(); 
//Computer computer = beanfacotry.getComputer(); 
computer.write(); 
} 
public void setComputer(Computer computer) 
{ 
this.computer = computer; 
} 
} 
另外两种方式都由依赖,第一个直接依赖于目标类,第二个把依赖转移到工厂上,第三个彻底与目标和工厂解耦了。在spring的配置文件中配置片段如下: 
<bean id=”computer” class=”cn.itcast.interview.Computer”> 
</bean> 

<bean id=”programmer” class=”cn.itcast.interview.Programmer”> 
<property name=”computer” ref=”computer”></property> 
</bean> 
3. Spring提供了对AOP技术的良好封装, AOP称为面向切面编程,就是系统中有很多各不相干的类的方法,在这些众多方法中要加入某种系统功能的代码,例如,加入日志,加入权限判断,加入异常处理,这种应用称为AOP。实现AOP功能采用的是代理技术,客户端程序不再调用目标,而调用代理类,代理类与目标类对外具有相同的方法声明,有两种方式可以实现相同的方法声明,一是实现相同的接口,二是作为目标的子类在,JDK中采用Proxy类产生动态代理的方式为某个接口生成实现类,如果要为某个类生成子类,则可以用CGLI B。在生成的代理类的方法中加入系统功能和调用目标类的相应方法,系统功能的代理以Advice对象进行提供,显然要创建出代理对象,至少需要目标类和 Advice类。spring提供了这种支持,只需要在spring配置文件中配置这两个元素即可实现代理和aop功能,例如, 
<bean id=”proxy” type=”org.spring.framework.aop.ProxyBeanFactory”> 
<property name=”target” ref=””></property> 
<property name=”advisor” ref=””></property> 
</bean> 

Struts优缺点 
优点: 
1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 
2.有丰富的tag可以用 ,Struts的标记库(Taglib),如能灵活动用,则能大大提高开发效率 
3. 页面导航 
使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。 
4. 提供Exception处理机制 . 
5. 数据库链接池管理 
6. 支持I18N 
缺点 
一、转到展示层时,需要配置forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器 
二、 Struts 的Action必需是thread-safe方式,它仅仅允许一个实例去处理所有的请求。所以action用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。 
三、 测试不方便. Struts的每个Action都同Web层耦合在一起,这样它的测试依赖于Web容器,单元测试也很难实现。不过有一个Junit的扩展工具Struts TestCase可以实现它的单元测试。 
四、类型的转换. Struts的FormBean把所有的数据都作为String类型,它可以使用工具Commons-Beanutils进行类型转化。但它的转化都是在Class级别,而且转化的类型是不可配置的。类型转化时的错误信息返回给用户也是非常困难的。 
五、对Servlet的依赖性过强. Struts处理Action时必需要依赖ServletRequest 和ServletResponse,所有它摆脱不了Servlet容器。 
六、前端表达式语言方面.Struts集成了JSTL,所以它主要使用JSTL的表达式语言来获取数据。可是JSTL的表达式语言在Collection和索引属性方面处理显得很弱。 
七、对Action执行的控制困难. Struts创建一个Action,如果想控制它的执行顺序将会非常困难。甚至你要重新去写Servlet来实现你的这个功能需求。 
八、对Action 执行前和后的处理. Struts处理Action的时候是基于class的hierarchies,很难在action处理前和后进行操作。 
九、对事件支持不够. 在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能 对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种粗粒度的事件。

一、Spring 
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开 EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。 

二、STRUCTS 
Struts 是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。 

三、Hibernate 
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 



SSH学习小结SSH学习小结 SSH学习小结SSH学习小结SSH学习小结SSH学习小结 立即下载

相关推荐

SSH框架分析总结

感觉还不错,所以供大家分享,针对SSH框架做了详细的解释,便于学习

Spring+SpringMvc+Hibernate(SSH)+bootstrap/Jsp整合

Spring+SpringMvc+Hibernate(SSH)+bootstrap/Jsp整合

kingkang 2066

summer-server:提供快速开发服务的基础框架,如引入导出等,支持云平台及微服务,可快速开发各类资讯管理系统

夏季框架 简介 summer开源框架包含summer-bean,summer-core,summer-db,summer-mis。使用业界成熟的MVC架构,以spring为基础,提供快速开发服务的基础框架服务。 框架地址: : 其中核心部分summer-bean对象主要有IForm与IService,两者结合可调整地实现微服务架构,同时保障系统功能弹性与性能弹性: IForm ,定位于页面控制器,用于接收Web输入,以及输出IPage接口。其中IPage实现有:JspPage,JsonPage,RedirectPage等,可自由扩展。器。 IService ,定位于业务逻辑,用于接收Web输出,并输出IStatus与DataSet-JSON,可以通过包装类,转换为其他格式如xml的输出,从而与IForm的区分在于: IForm有提供对getRequest()。getSession

探索SummerFramework:一款高效、易用的全栈开发框架

探索SummerFramework:一款高效、易用的全栈开发框架 是一个由Spring Avengers团队打造的现代全栈开发框架,它旨在简化Java Web应用的开发流程,提高开发效率,并提供强大的功能集以支持企业级应用。 项目简介 SummerFramework基于Spring Boot和Spring Cloud生态,吸收了其优点并做了许多优化,使得开发者能够更加专注于业务逻辑而不是基础设施的...

gitblog_00030的博客 584

三大框架ssh整合配置文件版

该项目包含ssh整合所有jar包,增删改查案例,适合初学者

Cadence学习之路:什么是PCB工艺的正片与负片

正片??负片??Flash焊盘的创建与使用

qq_46757048的博客 4245

Summer——从头开始写一个简易的Spring框架

Github仓库地址   Release V1.0   使用文档   更新日志   如何适配 ​ 参考Spring框架实现一个简易类似的Java框架。计划陆续实现IOC、AOP、以及数据访问模块和事务控制模块。项目持续维护中…欢迎Star!Thanks~~~ ​ 本项目参考自Spring,但又做出了自己的创新,最大的创新点在于解决循环依赖的问题,引入了自己的解决方案,具体方法可以参考更

vfdxvffd的博客 1355

浅谈专项测试之弱网络测试

浅谈专项测试之弱网络测试 一.弱网络测试背景 移动端产品的使用并非完全都是在流畅的wifi环境,大部分用户主要使用4G,3G,2G等网络,另外因为移动端产品使用的场景多变,如进公交,上地铁,坐电梯,使得弱网测试显得尤为重要。考虑到各种场景的客户端展示及容错,提升产品的印象和用户体验,提高产品的健壮性,弱网测试必不可少。 二.弱网络测试建议 网下需要进行功能点测试,无网络测试,网络切换测试等,测试过程除了关注功能点的实现,还应关注用户体验等各个方面 三.弱网络测试通用功能点总结 四.弱网络测试用例实例

ITstudy001的博客 1011

【亲测免费】 Summer 框架使用教程

Summer 框架使用教程 1. 项目介绍 Summer Framework 是一款基于Spring构建的轻量级开发框架,旨在简化Java应用的开发流程。它提供了核心的IoC容器、AOP支持、JDBC模板以及web应用程序的支持。Summer框架包含了以下几个主要模块: summer-context: 核心IoC容器,支持注解注入。 summer-aop: 注解驱动的子类代理AOP支持。 sum...

gitblog_00937的博客 1036

CAN通信:EB中配置CAN驱动,配置参数解析

以S32K314芯片说明,其他芯片不同,参数配置也有差异。

zhangxiaio1的博客 2167

19-5 ACC 自适应巡航控制系统需求

本专题由深圳季连AIgraphX李博及团队出品,主要讲解ACC自适应巡航控制系统的开发与仿真测试。具体说来,包括ACC标准/法规分析、系统需求、系统架构、软件需求、软件架构、算法建模、验证场景分析、仿真实验搭建等内容。 本节主要讲ACC系统需求。

AIgraphX 1088

【亲测免费】 Summer:一款轻量级的Java游戏服务器框架

Summer 是一个轻量级的、一站式的 Java 游戏服务器框架,同时也可用于开发简单的 Web 服务。该框架基于 Netty 实现了高性能通讯,支持多种网络协议,包括 TCP、HTTP、WebSocket 等。它支持 protobuf 和 JSON 两种数据格式,并且可以通过配置轻松开启多端口网络服务。Summer 框架提供了 RPC 远程调用功能,支持优雅的远程调用方式,包括调用超时重试和幂等...

gitblog_01107的博客 1027

【AI大模型:前沿】41、建筑行业大模型创业全指南:从技术突破到成本控制与落地路径

建筑行业大模型是“高门槛、高回报”的长周期赛道,适合有建筑行业资源+AI技术背景的团队切入。数据是基础,场景切割是策略,合规是底线。通过聚焦“设计生成+规范审查”等刚需场景,用“仿真数据+开源模型”降低成本,3-5年内有望成长为行业独角兽。对于中小团队,避开千万级全流程模型的红海,深耕“小而美”的单点工具,同样能实现盈利与快速扩张。关键成功公式建筑AI创业 = 50%数据壁垒构建 + 30%场景精准切入 + 20%成本控制能力。

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 2114

Java新手如何学习Spring、Struts、Hibernate三大框架?

来自于知乎的一篇不错的回答 Java新手如何学习Spring、Struts、Hibernate三大框架? https://www.zhihu.com/question/21142149

fengxinziyangyang的专栏 1748

26届数字IC秋招笔试面试全攻略-UVM验证方法学精要

本文介绍了数字IC验证中UVM方法学的核心内容,包括组件架构、Sequence机制和寄存器模型。UVM提供env、agent、driver等组件构建验证环境;Sequence机制通过item、sequence和sequencer实现激励生成与控制;寄存器模型则通过reg_block、reg等组件管理DUT寄存器。文章详细说明了各模块的功能、交互关系和代码实现,为IC验证工程师提供了完整的UVM应用指南,重点突出了验证环境的搭建方法、激励生成流程和寄存器抽象技术。这些内容是数字IC秋招笔试面试中的高频考点。

2301_79143213的博客 725

解决【x2openEuler环境检查未通过——CheckRepoCurlActor不通过】问题

摘要:x2openEuler使用默认repo源时出现环境检查失败问题,原因是默认源返回308永久重定向错误。解决方法包括:1)为CentOS主机配置华为yum源;2)在x2openEuler Web界面修改为自定义可用源。具体步骤包括备份原源、下载华为源、清除缓存,并通过curl测试确认新源可用性。最终成功配置openEuler-24.03-LTS-SP1版本的repo源后,环境检查顺利通过。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 258

Java新手如何学习Spring、Struts、Hibernate三大框架

最近几年Java一直名列最受欢迎的编程语言榜前,而在Java开发中Struts、Hibernate和Spring这三流行框架常常起了关键作用。因此本文将对比这三种Java流行框架,分析它们的产生和各自的优缺点。了解了这些,学习起来也更得心应手! 一、Struts、Hibernate和Spring的产生 1、Struts 传统的Java Web应用程序是采用JSP+Servlet+Javabean...

qf2019的博客 410

PCL 法线定向【2025最新版】

几种法线定向方法的PCL代码实现。

点云侠的博客 2805

Java初学者如何学习Spring、Struts、Hibernate三大框架

最近几年Java一直名列最受欢迎的编程语言榜前,而在Java开发中Struts、Hibernate和Spring这三流行框架常常起了关键作用。因此本文将对比这三种Java流行框架,分析它们的产生和各自的优缺点。了解了这些,学习起来也更得心应手! 一、Struts、Hibernate和Spring的产生 1、Struts 传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的JSP、负责流程逻辑控制的Se

Java9406的博客 1021

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java新手应该如何学习Spring、Struts、Hibernate三大框架?

三大框架:Struts+Hibernate+Spring Java三大框架主要用来做WEN应用。 Struts主要负责表示层的显示 Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作) Hibernate主要是数据持久化到数据库 再用jsp的servlet做网页开发的时候有个web.xml的映射文件,里面有一个mapping的标签就是用来做文件映射的。 当你在浏览器上输入URL得知的时候,文件就会根据你写的名称对应到一个JAVA文件,根据java文件里编写的内容显示在浏览器上,就是一个网页

shayukaifa的博客 304

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

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

java spring框架怎么学_Java新手如何学习Spring、Struts、Hibernate三大框架?

三大框架可以说是Java的必修课了,几乎所有的Java后台程序员都有接触过。其实万变不离其宗,学习框架最重要的是学习原理,剖析完原理以后对于框架可以说有个深层次的理解了。Springspring其实来说就是一个大容器。下面就是spring的三大核心思想:ioc(控制反转):首先我们举一个没有控制反转的例子。当我们在service层调用dao层的函数时,通常都会实例化一个dao层的对象,然后通过对象...

weixin_31299543的博客 174

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java初学者如何学习Spring、Struts、Hibernate三大框架?

想说说自己Spring的学习路程,课余自学Spring将近一年了,还是不得其道。去年暑假学习了一下JSP,并没有深入理解,所以导致学习Spring时对着书本写一些demo,感觉自己理解了,其实并不知道内部时什么原理,出了问题不停的百度,一个小问题好几天解决不了。 学习一种框架最先需要知道的是为什么需要使用这个框架,任何一个框架的发明都是为了解决编程中的一些痛点,打开任何一本hibernate或者其他框架的入门书,第一章都是介绍框架的理念和优势。如果需要理解这些理念和优势,那么你需要知道不使用这个框架之前是怎

m0_54988612的博客 236
上一篇: javaweb入门(5)-- 详细了解http协议3
下一篇: java应用中的子窗口切换,引出抽象类与接口的本质区别
Sweeter
博客等级 码龄14年 81粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值