日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
通過構(gòu)建最小WebAPI來展示Go-Spring的強大

本文由go語言教程欄目給大家介紹如何使用 Go-Spring 構(gòu)建最小 web API ,希望對需要的朋友有所幫助!

創(chuàng)新互聯(lián)公司主營聶榮網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,聶榮h5微信小程序開發(fā)搭建,聶榮網(wǎng)站營銷推廣歡迎聶榮等地區(qū)企業(yè)咨詢

Go 語言以簡單著稱,一個很明顯的例子就是只需要很少的代碼即可實現(xiàn)一個最小的 Web API 。Go-Spring 融合了 Go 簡單和 Spring 自動配置的優(yōu)點。本文通過幾個實現(xiàn)最小 Web API 的示例展示 Go-Spring 的簡單和強大。

To Gopher

下面是使用 Go 標準庫實現(xiàn)的 Hello World! 程序。代碼真的很少!

package mainimport (
  "net/http")func main() {
  http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello World!"))
  })
  http.ListenAndServe(":8080", nil)}

Gin 是目前最火的 Web 框架之一,它實現(xiàn)的 Hello World! 程序如下。也很簡單。

package mainimport (
  "github.com/gin-gonic/gin"
  "github.com/gin-gonic/gin/ginS")func main() {
  ginS.GET("/", func(c *gin.Context) {
    c.String(200, "Hello World!")
  })
  ginS.Run()}

再來看看使用 Go-Spring 實現(xiàn)的 Hello World! 程序。同樣很簡單。

package mainimport (
  "github.com/go-spring/spring-core/gs"
  "github.com/go-spring/spring-core/web"
  _ "github.com/go-spring/starter-gin")func main() {
  gs.GetMapping("/", func(ctx web.Context) {
    ctx.String("Hello World!")
  })
  gs.Run()}

但是,可以注意到使用 Go-Spring 實現(xiàn)的示例中有一個匿名導入的包,它的作用是告訴 Hello World! 程序使用 Gin 作為底層 Web Server 實現(xiàn)。如果我們把這一行改為如下代碼,程序仍然可以正常執(zhí)行,但是這時候程序使用 Echo 作為底層 Web Server 實現(xiàn)。

_ "github.com/go-spring/starter-echo"

雖然 Go-Spring 多了一行匿名包導入,但因此獲得了比標準庫更強大的能力。

To Javaer

Go-Spring 雖然提供了和 Go 標準庫一樣的編程模型,但本質(zhì)上它是基于 IoC (依賴注入) 實現(xiàn)的,因此它具有標準庫不具備的自動配置能力,而且與 Java Spring Boot 相比,Go-Spring 的編程效率也不差。

下面是使用 Java Spring Boot 實現(xiàn)的一個 Hello World! 程序,但是與上面的示例不同,為了展示 Java Spring 的依賴注入能力,它同時會打印 JAVA_HOME 環(huán)境變量的值。代碼如下。

package com.example.demo11;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerclass MyController {

  @Value("${JAVA_HOME}")
  String JavaHome;

  @GetMapping("/")
  public String hello() {
    return this.JavaHome + " - Hello World!";
  }}@SpringBootApplicationpublic class Demo11Application {

  public static void main(String[] args) {
    SpringApplication.run(Demo11Application.class, args);
  }}

下面是使用 Go-Spring 的依賴注入能力實現(xiàn)的能同時打印 GOPATH 環(huán)境變量和 Hello World! 的程序。代碼如下。

package mainimport (
  "github.com/go-spring/spring-core/gs"
  "github.com/go-spring/spring-core/web"
  _ "github.com/go-spring/starter-gin")func init() {
  gs.Object(new(MyController)).Init(func(c *MyController) {
    gs.GetMapping("/", c.Hello)
  })}type MyController struct {
  GoPath string `value:"${GOPATH}"`}func (c *MyController) Hello(ctx web.Context) {
  ctx.String(c.GoPath + " - Hello World!")}func main() {
  gs.Run()}

比較上面兩個示例,可以看出 Go-Spring 真正實現(xiàn)了 Go 和 Java Spring 的融合,在保持 Go (語法) 簡單的同時具備 Java Spring 的強大配置能力。


網(wǎng)站名稱:通過構(gòu)建最小WebAPI來展示Go-Spring的強大
URL鏈接:http://www.dlmjj.cn/article/djjpips.html