我收集了当前主流的以及正在兴起的JavaWeb框架,以及对框架整合作了简单介绍。【了解什么是框架】html
成熟的框架介绍python
Hibernate 框架react
Hibernate 是一种ORM框架,全称为 Object-Relative Database-Mapping,在Java对象与关系型数据库之间创建某种映射,以实现直接存取Java对象(POJO)。ORM框架是一种不一样与MVC的另外一种思想框架,适用范围也与MVC大相径庭。angularjs
使用JDBC链接来读写数据库,咱们最多见的就是打开数据库链接、使用复杂的SQL语句进行读写、关闭链接,得到的数据又须要转换或封装后往外传,这是一个很是烦琐的过程。!web
这时出现了Hibernate框架,它须要你建立一系列的持久化类,每一个类的属性均可以简单的看作和一张数据库表的属性一一对应,固然也能够实现关系数据库的各类表件关联的对应。当咱们须要相关操做是,不用再关注数据库表。咱们不用再去一行行的查询数据库,只须要持久化类就能够完成增删改查的功能。使咱们的软件开发真正面向对象,而不是面向混乱的代码。个人感觉是,使用Hibernate比JDBC方式减小了80%的编程量。spring
Struts2框架数据库
本词条缺乏信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶忙来编辑吧!apache
Struts2以WebWork优秀的设计思想为核心,吸取了 Struts框架的部分优势,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架编程
Struts2以WebWork优秀的设计思想为核心,吸取了 Struts框架的部分优势,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架。 Struts2引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器、减小或者消除配置文件、贯穿整个框架的强大表达式语言、支持可变动和可重用的基于MVC模式的标签API, Struts2充分利用了从其它MVC框架学到的经验和教训,使得 Struts2框架更加清晰灵活。设计模式
Struts 框架(目前已淘汰)
为了解决这些问题,出现了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等动态语言的开发效率。
框架整合
最初是Struts+ Spring + Hibernate。
后来演变为Struts2 + Spring + Hibernate。
后来随着Spring的强大以及Struts漏洞上的等等问题,演变成为了Spring + SpringMVC + Hibernate/Mybatis 互联网这块比较常见的是Mybatis。
最近也慢慢演变为了Springboot + Mybatis。