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

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应用的HelloWorld(11)_第1张图片

总结

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

你可能感兴趣的:(#,编程语言,#,go语言快速入门)