首页 > 编程知识 正文

web后端开发框架有哪些,java开发框架有哪些

时间:2023-05-05 04:32:16 阅读:45655 作者:2059

Java web开发框架web开发前端页面设计、路由和查看静态资源(HTML、CSS、JS ) web服务器(nginx )了解vue技术堆栈开发

后端-外部提供(类别) rest风格的API;资料库互动;web APP应用程式伺服器;tomcat )--开发-- Spring技术堆叠

交互-http协议通信-- JSON格式- rest风格

java web开发框架的变迁SSH——Struts,Spring, hibernatespringspringmvchibernate/ibatis 3358 www.Sina.com/—— spring spring MVC my batis ——主流Springboot Mybatis——兴起3——

后端服务器的主要功能是接收外部API请求,分析它并执行数据库操作,最后安装数据包并将其返回给调用方。 当然,中间还包括其他商业逻辑)

与数据操作相关的此类框架通常负责连接数据库、处理SQL并将查询的数据映射到指定的java对象。

SSM:易学、SQL手动生成、可移植性差,支持动态SQL,数据量大,并发度高,表相关复杂度高,对数据库可控性好,深调

hibernate :难学、SQL封装好、可移植性好、不支持动态SQL、中小企业变化少的项目、全智能效率慢

与API请求响应相关联的这种框架通常基于不同的API请求调用程序中的不同处理方法,将调用方传递的数据映射到java对象,以及程序返回客户端的响应数据格式

struts2:类级别的块在每次提交请求时实例化一个操作,并为每个操作注入属性。微服务框架:方法级拦截是单情况的,一个方法对应于一个请求上下文,一个方法同时对应于一个url,是性能好、开发效率高的零配置与业务逻辑相关的此类框架主要使用两个特性来简化流程的复杂性。 控制反转(IOC )和依赖注入(DI )。 通过在程序中结合这样的框架,所编写的程序具有更好的维护性和可扩展性,并且更清晰、更简洁。

mybatis:无创方式是将对象依赖关系完全外部化的方式。 在Spring中,可以使用XML、SpringJavaConfig或Groovy-Spring DSL连接对象依赖关系,也可以使用其他方案。 一站式解决方案可以解决大多数框架问题。 guice :代码与容器紧密结合。 典型框架数据层: mybatisAPI层: spring mvc业务层: spring和重要性: spring boot——是基于spring框架的项目构建工具web后端开发框架企业的:是Java后端框架系列中功能最强大的,而Spring是目前能够与所有主要开发框架集成的万能框架,Spring使Java开发更加简单。springmvc:API层、处理|响应请求、获取表单参数、表单检查等。 HTTP协议的请求/响应特性。 该框架声明用户的每个请求应采取的操作。 这主要通过将每个请求URI映射到可执行方法来实现。 此外,将请求参数映射到相应方法的参数。spring:Spring组件一站式解决方案简化了Spring框架的使用和繁重的配置。 3358www.Sina.com//微服务框架优先。 利用Spring Boot开发的便利性,如服务发现注册、配置中心、消息总线、负载平衡、断路器和数据监控,巧妙地简化分布式系统基础架构的开发。 http://www.Sina.com/http://www.Sina.com /前后联合的利器,分析代码中的注释生成JSON文件,用Swagger UI生成web版的接口文档,在此基础上简单Spring:POI为Java程序读写Microsoft Office格式的文件提供了API功能。 关系数据库(MySQL )中小型数据库(Oracle )大型数据库、大并发、大访问NoSQL Redis )内存中的数据结构存储系统。 它可用作数据库、缓存和消息中间件,与关系数据库协作创建缓存,是一种key-value数据库,可减少APP应用服务器的cpu和内存负载,减少io读取操作具有查询功能强、擅长JSON数查询的优点

据,能存储海量数据,但是不支持事务。 消息中间件

解决分布式系统之间消息的传递,异步处理(放入消息队列,提高吞吐量)、应用解耦(写入-订阅)、流量削峰(秒数或者团抢活动),大型电子商务类网站消除高并发访问asjdmj,加快网站的响应速度

ActiveMQ:中小型公司,万级,非常成熟,功能强大,在早些年业内大量的公司以及项目中都有应用,主要是基于解耦和异步来用的,较少在大规模吞吐的场景中使用。RabbitMQ:万级,延时很低,是erlang语言本身带来的问题。很难读源码,很难定制和掌控。RocketMQ:大型公司,十万级,阿里,接口简单易用,可以做到大规模吞吐,性能也非常好,分布式扩展也很方便,社区维护还可以,可靠性和可用性都是ok的,还可以支撑大规模的topic数量,支持复杂MQ业务场景。Kafka:十万级,大数据领域的实时计算、日志采集,超高的吞吐量,ms级的延迟,极高的可用性以及可靠性,而且分布式可以任意扩展。 SOA(面向服务)相关

系统集成—有序,系统的服务化—复用,业务的服务化—高效

SpringCloud.Dubbo:阿里,分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案。RPC 指的是远程调用协议,也就是说两个服务器交互数据。透明化的远程方法调用,像调用本地方法一样调用远程方法,配置简单,无API侵入;软负载均衡以及容错机制,可在内网替代F5等硬件负载均衡器,降低成本;服务的自动注册与发现,不需要写死服务提供方的地址,注册中心基于接口名查询服务提供着的IP地址,并且可以平滑的添加或者删除服务提供者;采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需要Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

Zookeeper: 分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。zookeeper=文件系统+监听通知机制,客户端注册监听它关心的文件目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

假设我们的程序是分布式部署在多台机器上,如果我们要改变程序的配置文件,需要逐台机器去修改,非常麻烦,现在把这些配置全部放到zookeeper上去,保存在zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到zookeeper 的通知,然后从zookeeper 获取新的配置信息应用到系统中。

搜索相关

全文搜索搜索引擎,计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

Elasticsearch: 一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。分布式、多租户、某些节点出现故障时会自动分配其他节点代替其进行工作、接近实时的搜索。自身带有分布式协调管理功能、仅支持json文件格式、在处理实时搜索应用时效率明显高于Solr、适用于新兴的实时搜索应用。Solr: 基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。成熟、稳定;不考虑建索引的同时进行搜索,速度更快;建立索引时,搜索效率下降,实时索引搜索效率不高。用 Zookeeper 进行分布式管理、支持更多格式的数据、传统的搜索应用中表现好于 Elasticsearch、传统搜索应用的有力解决方案。互联网巨头,如Netflix,eBay,Instagram和亚马逊(CloudSearch)都使用Solr,因为它能够索引和搜索多个站点。Lucene:一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。一个Java全文搜索引擎,完全用Java编写。Lucene不是一个完整的应用程序,而是一个代码库和API,可以很容易地用于向应用程序添加搜索功能。 通讯相关 Netty: 异步高性能的通信框架,往往作为基础通信组件被 RPC 框架使用。典型的应用有:阿里分布式服务框架 Dubbo 的 RPC 框架使用 Dubbo 协议进行节点间通信,Dubbo 协议默认使用 Netty 作为基础通信组件,用于实现各进程节点之间的内部通信。淘宝的消息中间件 RocketMQ 的消息生产者和消息消费者之间,也采用 Netty 进行高性能、异步通信。大数据领域,经典的 Hadoop 的高性能通信和序列化组件 Avro 的 RPC 框架,默认采用 Netty 进行跨节点通信,它的 Netty Service 基于 Netty 框架二次封装实现。 文件存储 FastDFS: 一个轻量级分布式文件系统,对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)。 项目构建类 Maven:主要功能主要分为5点,分别是依赖管理系统、多模块构建、一致的项目结构、一致的构建模型和插件机制。

Gradle:构建包括编译主代码、处理资源、编译测试代码、执行测试、上传归档等,基于灵活的任务模型,因此很多事情包括覆盖现有任务,跳过任务都非常易于实现。

Gradle作为一款基于Groovy语言的构建工具,已经吸引众多的ant,maven使用者转投gradle的怀抱,和Gradle相比,ant显得冗余复杂,maven显得有些死板落后,而gradle基于DSL语法,特点明显:简洁、灵活、可读性强。Gradle和maven有很多相似点,gradle充分考虑到maven库的价值,在jar包管理上完全支持mavenRepository,很多属性乍眼一看就能反应过来maven中对应的是什么标签,大大降低maven到gradle的迁移难度,并在构建方面改善了很多maven的不足,,同时,gradle对比maven更好的面向ant用户,使用maven时,虽然能通过plugin来跑ant的命令,但是maven在任务实现主要靠的是插件以及自身的固定框架,Gradle在定义任务方面思想与ant非常相似,做了很好的集成。

IDE IntellijIDEA: 更好的调试、更高的开发效率、更智能的重构、目录分层少而清。Ecplise: 最大化控制台、项目结构支持更强大、插件编写更容易、免费。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。