早想写一篇关于开源框架的评论。关于 struts,hibernate,spring。。
声明:本观点只代表我个人兴趣。
struts 违背OO,将很快被人们所抛弃,spring将占上风。 接触 struts 有一段时间了,终觉得有点别扭。网上有流传struts + hibernate +spring 是最佳组合。我不知道此人是在玩框架还是想练手,练手就不说了,如果说是在做项目,我觉得有点可笑。只能说对各个框架,它们之间的关系,结合起来有多大的优势,会给项目带来多大好处。。。没有搞清楚。
我不是在反对struts。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,是个不错的MVC框架。
Hibernate hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。
。。。。
各个框架单个看起来是非常完美的。单个框架在项目中是不能解决所有问题的。
一 : struts +hibernate
struts 做web,hibernate做数据库操作,感觉完美。的确做中小,业务不太复杂的项目足够了。细想一下,如果要在项目中加入详细日值,权限划分,就凭以上框架很难完成(不是不能完成)。
二: struts +hibernate +spring
引入spring不仅解决了以上的不足,Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。用过这三个框架的人会觉得有很多重复的代码,struts有actionForm,hibernate有持久化对象,spring有POJOs。感觉很象,只是表现形式不一样而已。spring的MVC 要比struts更“MVC”,还内置集成hibernate。struts 违背OO,这话一点不假,知道spring MVC 的人都会这么认为。
三 spring+hibernate 已足够强大。
本人现在在西安从事java WEB开发,同时还研究网站运营。做过几个自己感觉不错的东西,但都很不完美。自认为学习这些开源框架的源码是一件很有意义的事,spring hibernate 是我认为目前很不错的框架。也许还有更好的我不知道。有意者请与我联系,共同探讨我们关注的问题。
分享到:
相关推荐
Struts2远程命令执行漏洞解析 漏洞解析 远程命令 Struts2
Struts2漏洞检查工具,可快速检测struts命令执行漏洞,支持批量导入验证,存在可利用的漏洞后,可远程执行命令及文件上传等操作。方便管理人员了解其危害。
Struts2 HighChart Jquery远程加载 折线图 jquery两种ajax方案 无需任何特殊jar包 struts配置无type="json
对struts2远程漏洞扫描工具
location:解压缩struts-core-2.5.16.jar 后,文件struts-2.5.dtd文件路径。 4.设置开发者模式: <constant name="struts.devMode" value="true" /> <constant name="struts.i18n.encoding" value="utf-8" /> 每次...
Struts2.3.15.1版本升级到2.3.32版本详细流程,可解决Struts 2远程执行代码漏洞
《Struts 2.0.0 - Struts 2.3.14.1 URL及A标签远程命令执行漏洞探测 V1.1》 使用说明: 运行EXE程序,输入扫描站点的任意一个URL入口链接地址, 若提示扫描是否包含顶级域名下的所有页面,根据提示输入即可。 ...
Struts2是一个基于MVC设计模式的Web应用框架,但2存在远程代码执行的漏洞,现在Struts2漏洞检测工具2017版增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过...
struts2远程命令执行漏洞环境搭建以及录屏
struts2远程命令执行环境war包,想要深入学习深入到代码层的童鞋可以下载在本地搭建使用。
升级到2.3.32所用到的jar包: freemarker-2.3.22.jar ognl-3.0.19.jar struts2-convention-plugin-2.3.32.jar struts2-core-2.3.32.jar struts2-spring-plugin-2.3.32.jar xwork-core-2.3.32.jar --来源 ...
基于struts2+mysql做的社区医院远程挂号系统,很好的一个源码
Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架,主要提供两个版本框架产品:Struts 1和Struts 2。 Apache Struts 2.3.5 - 2.3.31版本...
struts2.3jar包依赖。
Struts2远程代码执行漏洞分析(S2-013)1
Apache官方已针对该漏洞发布安全公告,ApacheStruts 2.3.5 – 2.3.31版本及2.5 – 2.5.10版本存在远程代码执行漏洞(CNNVD-201703-152 ,CVE-2017-5638)。该漏洞是由于上传功能的异常处理函数没有正确处理用户输入...
struts2向服务器返回json数据的一个简单Demo,便于理解
gueige_struts2-tools扫描工具,若WEB网站使用struts2框架,可查看struts2版本,然后到官网看该版本是否存在远程命令执行漏洞
在2013年6月底发布的Struts 2.3.15版本被曝出存在重要的安全漏洞 [1] ,主要问题如下: 可远程执行服务器脚本代码 [2] 用户可以构造http://host/struts2-blank/example/X.action?action:%25{(new+java.lang....
struts2 最新漏洞 S2-016、S2-017修补方案 .docx