go语言快速入门:Web应用的HelloWorld(11) - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 网站建设 >

go语言快速入门:Web应用的HelloWorld(11)

发表时间:2017-2-5

发布人:葵宇科技

浏览次数:35

go有很多优秀的框架,可以在其基础之上进行Web开发,非常方便。其实即使不使用框架,go提供的面向web开发的标准包使用起来进行Web开发也极为方便。至少第一个Web应用的入门HelloWorld,在go中的实现非常简单。在这篇文章中,我们将简单与之和Spring Boot开发作简单的对比,从中了解一下go的http包的强大功能.

Spring Boot

Spring Boot基于COC的思路,内嵌了应用服务器和约定俗成的规范,使得使用如下简单的代码即可实现一个Web应用的开发, 极大地简化开发的过程.

@RestController
@SpringBootApplication
public class DemoApplication {
    @RequestMapping("/")
    public String Hello(){
        return "Hello, Spring Boot...";
    }
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

所以很容易看出来,Spring Boot的背后是由关键是注解的关联/IoC的实现保证了开发的简单快速。详细可以参看:

项目URL入门实例http://blog.csdn.net/liumiaocn/article/details/53442364

net/http包

go的net/http包提供了从路由到cookie设定以及模板文件使用等诸多功能,利用http包可以极其简单地搭建起来一个可以运行的Web应用。接下来,我们将通过实现一个和Spring Boot上述例子一样的程序,来了解一下go是如何实现的。

例子代码

为了说明更加简单,此例未作异常处理等,在这个例子中我们想实现8080端口的/的访问的对应处理,期待输出“Hello, Welcome to go web programming…”

[root@liumiaocn goprj]# cat basic-web-hello.go
package main

import "fmt"
import "net/http"

func Hello(response http.ResponseWriter, request *http.Request) {
        fmt.Fprintf(response, "Hello, Welcome to go web programming...")
}

func main() {
        http.HandleFunc("/", Hello)
        http.ListenAndServe(":8080", nil)
}
[root@liumiaocn goprj]#

执行结果

[root@liumiaocn goprj]# go run basic-web-hello.go

画面确认

这个只有四行的程序非常简单快速地实现了很多人使用go语言进行开发的第一个Web应用程序。
这里写图片描述

总结

通过go语言的一个简单的Web应用的实现,仿佛能看到Spring Boot的RequestMapping注解的go语言实现版。了解函数和函数指针的C特点的开发者知道,这种关联的实现也并不困难,而go使用http包中的http.HandleFunc与之和实现进行关联,使得使用go进行RESTful的开发也将会非常方便和快捷。而且它都不需要一个内嵌的应用服务器,因为go语言与底层的亲和性以及标准包的强大,在ListenAndServe中设定端口即可。

淼叔 CSDN认证博客专家 神经网络 TensorFlow NLP 资深架构师,PMP、OCP、CSM、HPE University讲师,EXIN DevOps Professional与DevOps Master认证讲师,曾担任HPE GD China DevOps & Agile Leader,帮助企业级客户提供DevOps咨询培训以及实施指导。熟悉通信和金融领域,有超过10年金融外汇行业的架构设计、开发、维护经验,在十几年的IT从业生涯中拥有了软件开发设计领域接近全生命周期的经验和知识积累。

相关案例查看更多