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

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                       

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

Spring Boot

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

@RestController@SpringBootApplicationpublic class DemoApplication {    @RequestMapping("/")    public String Hello(){        return "Hello, Spring Boot...";    }    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

所以很容易看出来,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.gopackage mainimport "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]#
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

执行结果

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

画面确认

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

总结

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

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/sdfsdfytre/article/details/83535592