现在Java web比较流行用的框架是什么?

Java是开源的,框架很多,这些框架都能解决特定的问题,提高开发效率、简化我们的代码复杂度,现在除了很多大家通用的一些主流框架外,很多公司针对自己的业务会自定义一些公司内部的框架,但是作为学习者我们首先要清楚Javaweb需要有哪些框架可以学习的。

 回答这个问题之前,首先要看我们的项目规模,对于”体量”较小的单应用项目,和需要处理海量数据、高并发的分布式项目所学习使用的框架还是不同的。

对于“体量”较小的单应用项目:

  ORM型框架,很多Javaweb程序都需要使用关系数据库来进行数据的持久化,所以对于这种需要进行数据库操作的框架,也就是对JDBC进行封装的ORM框架是需要学习的,目前比较流行的是基于SQL的mybatis框架,这是一个轻量级的ORM框架,学习使用起来比较容易上手,同类型的还有Hibernate框架。

  MVC型框架,MVC把程序从逻辑上分为视图层、控制层、模型层,各层各司其职,之间是相互调用的关系而不是相互依赖的关系,这种模式能很好的适应需求的变化及软件的升级变更。目前应用较多的MVC框架是spring MVC框架,这个框架有清晰的角色划分,有强大而直接的配置方式,高效的绑定和验证等很多优势。较早的Struts2框架也是MVC框架。

  Spring框架,其实Java的从业者很多都绕不开Spring ,Spring家族有很多“工具”,编程思想从面相过程到面相对象是一个巨大的进步,然而随着程序越来越复杂,对象越来越多,高效的“管理”及应用这些对象变得越来越重要,Spring的IoC就是把对象的创建、“管理”交由Spring容器来进行,来实现控制反转,同时提供了各种注入值(DI)的方式,大大提高和简化了我们的工作,这就是javaweb需要学习的spring的IoC/DI;我们程序的业务比较复杂时,除了要完成核心功能外,还需要完成注入异常处理、日志记录、事务处理等常规功能,这些常规的操作比较耗费精力,springAOP(面向切面编程)就是解决这个问题的。

  Javaweb需要学习一些前端框架,尤其是问题中提到的已经写好了数据接口,或者是已经有了简单的后台,前端框架jQuery是一定要学习的,如果项目基于效率考虑,需要前后端分离,可以学习vue等框架。

  对于海量数据、高并发类型的分布式项目,这种类型项目的特点就是前面提到的需要处理的数据量大,例如双十一阿里需要处理的订单数据,比如12306的抢票等。

  提升查询效率的缓存数据库框架Redis,这个框架在单应用程序中为了提升数据的读取效率也可以使用,先把数据从关系数据库通过Redis存放到缓存中,从缓存中读取数据的速度比直接从硬盘上读取就要高多了,另外Redis还能进行集群配置主从服务器等,使用非常方便,同类型的还有memcached框架;

  在分布式中,服务集群中的负载均衡特别重要,Nginx是一个高性能的HTTP和反向代理服务框架,支持多种负载均衡算法;

  消息队列框架:RabbitMQ、ActiveMQ、RocketMQ等,在电商系统中,当结算订单后,需要进行积分的变化等操作,这些操作的量很大,如果等积分变化结束后在通知用户结算成功,显然不可行,那么此时积分的变更操作交由消息队列来完成。

  搜索框架,为了提升搜索的效率,创建搜索索引库及中文搜索分词等,可以使用solr框架,同类型的还有ElasticSearch

  用于文件使用的分布式文件系统框架Fastdfs

  Spring boot框架,简化了spring 的复杂配置,提供了Thymeleaf模板,很多微服务都是基于Springboot的;

  微服务框架,把应用拆分成若干个为服务后,很好的适用了高并发及海量数据的处理,但是微服务的管理也很重要,目前基于服务注册、服务监控的框架有Dubbo+zookeeper,还有SpringCloud,里面包括SpringCloud Eureka,SpringCloud Ribbon,SpringCloud Feign,SpringCloudHystrix,SpringCloudZuul,SpringCloud Config,SpringCloud ZipKin,SpringCloud Sleuth等;

  其它框架,还有很多根据项目特定要求的一些框架,例如进行日志记录的log4j框架,进行认证和授权的shiro框架,工作流处理的Activite框架等。

  总结一下:学习框架最好的方式就是在实际项目中去应用,这对框架的原理、应用流程都能有很好的学习效果,如果单纯的做一些简单的Demo,框架的很多应用场景、优化、注意事项等是学习不全面的。

原文地址:https://www.cnblogs.com/cldmxw/p/10487822.html

时间: 2024-11-10 13:49:26

现在Java web比较流行用的框架是什么?的相关文章

Java Web开发SpringMVC和MyBatis框架开发环境搭建和简单实用

1.下载SpringMVC框架架包,下载地址: 点击下载 点击打开地址如图所示,点击下载即可 然后把相关的jar复制到lib下导入 2.MyBatis(3.4.2)下载 点击下载 MyBatis中文文档地址 点击查看 下载解压之后把jar复制到lib下导入,大概是这样子的 3.jdbc连接库还没有下载...这个是5.1.41版本的... 点击下载 解压之后这样子... 4.fastjson 阿里巴巴的json解析库 点击下载 版本是1.2.24 这个是托管到了github上面的,地址是:点击进入

Java Web前端到后台常用框架介绍

转自: http://blog.csdn.net/u013142781/article/details/50922010 一.SpringMVC http://blog.csdn.net/evankaka/article/details/45501811 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spri

Java Web开发中Spring+MyBatis框架的简单搭建

这里使用的eclipse,首先创建一个动态web项目. 1.导入Spring IOC.AOP.DAO.dbcp.dbdrive.mybatis.jar . mybatis-spring.jar  本人使用的jar包和版本如下: aopalliance.jaraspectjweaver.jarcommons-dbcp-1.4.jarcommons-logging.jarcommons-pool-1.5.6.jarmybatis-3.2.5.jarmybatis-spring-1.2.2.jarmy

2019年Java Web最流行的开发框架总结

ORM型框架:对数据进行持久化操作,例如:基于SQL的MyBatis框架和Hibernate框架. MVC型框架:从逻辑上分为视图层,控制层,模型层,各层各司其职,之间是相互调用的关系,而不是相互依赖的关系.        例如:SpringMVC,Struts2框架,Spring框架. Spring框架:将对象的管理交给Spring的IOC容器,反转资源获取的方向,是编程思想的一大进步. 前端框架:jQuery,如果考虑到前后端分离技术,可以学习vue,node,js等框架,对于海量数据,高并

MVC模式在Java web 应用程序的实现

一.MVC简介 MVC(Model-View-Controller)模型-视图-控制器,最早由Trygve Reenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件架构.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,此模式通过对复杂度的简化,使程序结构更加直观.软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能. Mode

【java web】过滤器filter

一.过滤器简介 过滤器filter依赖于servlet容器 所谓过滤器顾名思义是用来过滤的,Java的过滤器能够为我们提供系统级别的过滤,也就是说,能过滤所有的web请求, 这一点,是拦截器无法做到的.在Java Web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或 者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者struts

JAVA web 框架集合

“框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架: 在研究好用和新框架. 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制作,会陆续分享!!! 152款框架,你还知道其他的吗? 留言你用过的web框架 Java开源web框架汇总 1 Struts2 Struts2是一个web应用框架.它不是一个Struts的新的发布版本,而是一个全新的框架.Struts2 是第二代基于Model-View-Controller (MVC)模型的web应用框架. Struts

基于Java Web SSH框架的网上书店

获取项目源文件,技术交流与指导联系Q:1225467431 摘   要 随着互联网技术的发展,网上购物越来越流行,而网上书店更是逐渐受到越来越多的人关注,不用涉及交通.不用到书店翻阅.即可看到全国各地的书籍价格.更加全面地搜索自己喜欢的书籍.需要的书籍.通过网络销售系统的平台,商家将拥有更大的市场,能更加及时快速地得到用户对于商品的反响,可以随时调整销售策略,提高商家的市场竞争力.对于消费者也提供了方便,消费者可以不受时间和地域的限制进行购物,并且可以获取更多信息.. 本文阐述了如何构建基于B/

使用Struts框架的Java Web项目中的两个Session的区别和常见的Session取值为空的错误

我的百度知道回答,感觉这个知识很有意义,专门贴出来. 不过还有待验证的地方,就是 ActionContext.getContext().getSession("name", "Tom"); //如果在JSP中通过 EL 或者 Struts2 标签怎么显示? 以下是回答正文. 很多初学Java Web的同学因为使用 Strut2框架而分不清两个 Session的区别. 1.   JSP/Servlety有个原生的 session 对象,这是9大内置对象中的一个,书上写