91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過構建最小Web API來展示Go-Spring的強大

發布時間:2021-12-03 10:03:18 來源:億速云 閱讀:107 作者:小新 欄目:編程語言

這篇文章主要介紹如何通過構建最小Web API來展示Go-Spring的強大,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

To Gopher

下面是使用 Go 標準庫實現的 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 框架之一,它實現的 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 實現的 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 實現的示例中有一個匿名導入的包,它的作用是告訴 Hello World! 程序使用 Gin 作為底層 Web Server 實現。如果我們把這一行改為如下代碼,程序仍然可以正常執行,但是這時候程序使用 Echo 作為底層 Web Server 實現。

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

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

To Javaer

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

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

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 的依賴注入能力實現的能同時打印 GOPATH 環境變量和 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 真正實現了 Go 和 Java Spring 的融合,在保持 Go (語法) 簡單的同時具備 Java Spring 的強大配置能力。

以上是“如何通過構建最小Web API來展示Go-Spring的強大”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博湖县| 长汀县| 金塔县| 泗阳县| 宜良县| 建始县| 平邑县| 二手房| 临漳县| 富平县| 宣汉县| 临湘市| 磴口县| 新邵县| 工布江达县| 荣成市| 成安县| 屏南县| 罗田县| 云南省| 博客| 宝丰县| 涪陵区| 常熟市| 乡城县| 元谋县| 马边| 应用必备| 溧水县| 石首市| 太仓市| 卓资县| 清徐县| 孟村| 惠州市| 栾川县| 金华市| 绥中县| 蓝田县| 郎溪县| 灵武市|