JavaWeb⽬前主流⽐较成熟的框架以及正在兴起的框架
成熟的框架介绍
根据RebelLabs,也是在线Java⽤户组(虚拟JUG)的媒体盟友所进⾏的调查,2018年最佳Java框架的阵容如下:
Hibernate 框架
Hibernate 是⼀种ORM框架,全称为 Object-Relative Database-Mapping,在Java对象与关系型数据库之间建⽴某种映射,以实现直接存取Java对象(POJO)。ORM框架是⼀种不同与MVC的另⼀种思想框架,适⽤范围也与MVC截然不同。
使⽤JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使⽤复杂的SQL语句进⾏读写、关闭连接,获得的数据⼜需要转换或封装后往外传,这是⼀个⾮常烦琐的过程。
这时出现了Hibernate框架,它需要你创建⼀系列的持久化类,每个类的属性都可以简单的看做和⼀张数据库表的属性⼀⼀对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不⽤再关注数据库表。我们不⽤再去⼀⾏⾏的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正⾯向对象,⽽不是⾯向混乱的代码。我的感受是,使⽤Hibernate⽐JDBC⽅
式减少了80%的编程量。
Struts2框架
本词条缺少信息栏、名⽚图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
Struts2以WebWork优秀的设计思想为核⼼,吸收了 Struts框架的部分优点,提供了⼀个更加整洁的MVC设计模式实现的Web 应⽤程序框架Struts2以WebWork优秀的设计思想为核⼼,吸收了 Struts框架的部分优点,提供了⼀个更加整洁的MVC设计模式实现的Web 应⽤程序框架。 Struts2引⼊了⼏个新的框架特性:从逻辑中分离出横切关注点的、减少或者消除配置⽂件、贯穿整个框架的强⼤表达式语⾔、⽀持可变更和可重⽤的基于MVC模式的标签API, Struts2充分利⽤了从其它MVC框架学到的经验和教训,使得 Struts2框架更加清晰灵活。Struts 框架(⽬前已淘汰)
struts配置太过于复杂,⽽且太不经⽤,经常报错,维护使⽤不便,再加上漏洞前科,很多中⼩型都放弃了使⽤,直接⽤spingMVC替代。⽽hibernate性能⼀般,再加上sql语句全封装,⽽Mybatis是半封装,更加灵活。性能强⼤,已经有了取⽽代之的趋势。为了解决这些问题,出现了Struts框架,它是⼀个完美的MVC实现,它有⼀个中央控制类(⼀个Servlet),针对不同的业务,我们需要⼀个Action类负责页⾯跳转和后台逻辑运算,⼀个或⼏个JSP页⾯负责数据的输⼊和输出显⽰,还有⼀个Form类负责传递Action和JSP中间的数据。JSP中可以使⽤Struts框架提供的⼀组标签,就像使⽤HTML标签⼀样
简单,但是可以完成⾮常复杂的逻辑。从此JSP页⾯中不需要出现⼀⾏<%%>包围的Java代码了。可是所有的运算逻辑都放在Struts的Action⾥将使得Action类复⽤度低和逻辑混乱,所以通常⼈们会把整个Web应⽤程序分为三层,Struts负责显⽰层,它调⽤业务层完成运算逻辑,业务层再调⽤持久层完成数据库的读写。
MyBatis 框架
MyBatis 本是apache的⼀个开源项⽬iBatis, 2010年这个项⽬由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11⽉迁移到Github。
iBATIS⼀词来源于“internet”和“abatis”的组合,是⼀个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
Spring 框架
调⽤者依赖被调⽤者,它们之间形成了强耦合,如果我想在其他地⽅复⽤某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调⽤,复⽤度极低。如果⼀个类做了修改,则依赖它的很多类都会受到牵连。为此,出现Spring框架。
Spring的作⽤就是完全解耦类之间的依赖关系,⼀个类如果要依赖什么,那就是⼀个接⼝。⾄于如何
实现这个接⼝,这都不重要了。只要拿到⼀个实现了这个接⼝的类,就可以轻松的通过xml配置⽂件把实现类注射到调⽤接⼝的那个类⾥。所有类之间的这种依赖关系就完全通过配置⽂件的⽅式替代了。所以Spring框架最核⼼的就是所谓的依赖注射和控制反转。
spring MVC 框架
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow⾥⾯。Spring 框架提供了构建 Web 应⽤程序的全功能 MVC 模块。使⽤ Spring 可插⼊的 MVC 架构,从⽽在使⽤Spring进⾏WEB开发时,可以选择使⽤Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。
它是⼀个典型的教科书式的mvc构架,⽽不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的⼈来说我觉得 spring是最好的,它的实现就是教科书!第⼆它和tapestry⼀样是⼀个纯正的servlet系统,这也是它和tapestry相⽐ struts所具有的优势。⽽且框架本⾝有代码,看起来容易理解。Data Access Objects(DAOs)。
正在兴起的框架
Jersey 框架
Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现,提供了更多的特性和⼯具,可以进⼀步地简化 RESTful service 和 client 开发。尽管相对年轻,它已经是⼀个产品级的 RESTful service 和 client 框架。与Struts类似,它同样可以和hibernate,spring框架整合。
由于Struts2+hibernate+spring整合在市场的占有率太⾼,所以很少⼀部分⼈去关注Jersey。所以⽹上有关于Jersey的介绍很少。但是它确实是⼀个⾮常不错的框架。对于请求式服务,对于GET,DELETE请求,你甚⾄只需要给出⼀个URI即可完成操作。
举个简单的例⼦:如果你想获得服务器数据库中的所有数据;那么你可以在浏览器或者利⽤Ajax的GET⽅法,将路径设置好;例如:localhost:8080/Student(项⽬名称)/studentinfo(项⽬服务总体前缀)/student(处理student对象的签注)/getStudentInfo(最后前缀)。这样就可以获取所有学⽣信息。你可以选择GET获取的数据的返回类型:JSON,XML,TEXT_HTML(String)..获取之后,你可以通过JS将这些数据塞到html 或者jsp页⾯上。
springboot 框架
springboot 框架,被称作⼀栈式解决⽅案。⽐较轻量,也是当前微服务下的趋势;springboot本⾝就是构建与spring之上,各种思想和特性⽆需多说,去掉了spring繁琐的配置,简化了原有spring开发的流
程,提供了各种实⽤的特性如metric,actuctor等等;最重要的是springboot附带了整个springcloud⽣态。两个框架对你解决⼤,中,⼩项⽬都没任何问题
play 框架
play可能更加偏向于scala点,本⾝轻量性能⾼,随着逐步的优化易⽤性以及扩展性都变得越来越好;
Vue.js 框架
严格来说这个应该不属于框架,从组建构造上来讲是和reactjs 类似的构造UI组件的。从整体逻辑来讲,他要解决的是MVVM的VM这个部分,就是如何把应⽤程序的model 和 view 联系起来的这个VM(view model) 部分。众所周知, MVC这个design pattern争议⼤的就是这个C 的部分,所以才有各种MV* 的⽅案提出。他使⽤起来确实⽐reactjs 简单⽅便多了。代码也清晰。借鉴了angularjs的declarative的特点。
另外⽂档,例⼦做的都很漂亮。上⼿⽐较快,这些都是很好的优点。
jfinal 框架
JFinal 是基于Java 语⾔的极速 web 开发框架,其核⼼设计⽬标是开发迅速、代码量少、学习简单、
功能强⼤、轻量级、易扩展、Restful。在拥有Java语⾔所有优势的同时再拥有ruby、python等动态语⾔的开发效率。
react开发框架框架整合
最初是Struts+ Spring + Hibernate。
后来演变为Struts2 + Spring + Hibernate。
后来随着Spring的强⼤以及Struts漏洞上的等等问题,演变成为了Spring + SpringMVC + Hibernate/Mybatis 互联⽹这块⽐较常见的是Mybatis。
最近也慢慢演变为了Springboot + Mybatis。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论