首页>>后端>>Golang->go有没有类似于spring的框架?

go有没有类似于spring的框架?

时间:2023-12-02 本站 点击:0

Go语言HTTPServer开发的六种实现

学完了 net/http 和 fasthttp 两个HTTP协议接口的客户端实现,接下来就要开始Server的开发,不学不知道一学吓一跳,居然这两个库还支持Server的开发,太方便了。

相比于Java的HTTPServer开发基本上都是使用Spring或者Springboot框架,总是要配置各种配置类,各种 handle 对象。Golang的Server开发显得非常简单,就是因为特别简单,或者说没有形成特别统一的规范或者框架,我发现了很多实现方式,HTTP协议基于还是 net/http 和 fasthttp ,但是 handle 语法就多种多样了。

先复习一下: Golang语言HTTP客户端实践 、 Golang fasthttp实践 。

在Golang语言方面,实现某个功能的库可能会比较多,有机会还是要多跟同行交流,指不定就发现了更好用的库。下面我分享我学到的六种Server开发的实现Demo。

基于 net/http 实现,这是一种比较基础的,对于接口和 handle 映射关系处理并不优雅,不推荐使用。

第二种也是基于 net/http ,这种编写语法可以很好地解决第一种的问题,handle和path有了类似配置的语法,可读性提高了很多。

第三个基于 net/http 和 github.com/labstack/echo ,后者主要提供了 Echo 对象用来处理各类配置包括接口和handle映射,功能很丰富,可读性最佳。

第四种依然基于 net/http 实现,引入了 github.com/gin-gonic/gin 的路由,看起来接口和 handle 映射关系比较明晰了。

第五种基于 fasthttp 开发,使用都是 fasthttp 提供的API,可读性尚可,handle配置倒是更像Java了。

第六种依然基于 fasthttp ,用到了 github.com/buaazp/fasthttprouter ,有点奇怪两个居然不在一个GitHub仓库里。使用语法跟第三种方式有点类似,比较有条理,有利于阅读。

微服务框架全家福都有哪些

度娘给出的一个完整答案,总结的很全面

Java系微服务框架

·Spring Boot/ Netflix OSS/Spring Cloud

·Dubbo

·Dropwizard

·Akka

·Vert.x/ Lagom/ ReactiveX/Spring 5

·除了以上介绍的这些主流微服务框架外,还有Grizzly、KumuluzEE、ConductR、Ninja、Jodd、Restlet、RESTEasy、Payara Micro、Redkale、RestExpress、restx、JessMA、eventuate、Rapidoid、Ratpack、Javalite、JHipster及Bootique.io等

.Net系微服务框架

·Service Fabric

·Surging

·Steeltoe OSS

·Microdot Framework

·.NET China Foundation

·除以上框架,还有Xigadee、Apworks framework、Cronus、NancyFx、GRPC等相关框架和项目

Node.js微服务框架

·Seneca

·Hapi/ restify/ LoopBack

Go微服务框架

·Go-Kit

·Goa

·Dubbogo

·除了上面3种基于Go语言的微服务框架,还有Micro、Gizmo等

Python微服务框架

·Nameko, Python的微服务框架非常少,暂时就列出一个框架

Spring框架同类技术有哪些,还是它独霸天下

在JavaEE的轻量级框架中,不同层次有不同的框架,Spring主要提供了IoC和AOP两大功能,这一点其他框架都没有提供,基本上可以说在这个层面是没有替代者的,而且这个现象已经持续了十余年,说是独霸天下也不为过。同时SpringMVC也取代了Struts 2,MyBatis取代了Hibernate,以往的SSH框架现在基本上变成了SSM框架的组合。

go语言有没有类似tp5框架

有,go语言有框架,例如:Beego(Go语言下开源的,高性能Web框架 )、Buffalo(Go语言下快速Web开发框架)、Echo、Gin、Iris、Revel(高生产率,全栈Go语言的Web框架)等。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Golang/10112.html