Heim >Backend-Entwicklung >Golang >Demonstrieren Sie die Leistungsfähigkeit von Go-Spring, indem Sie eine minimale Web-API erstellen

Demonstrieren Sie die Leistungsfähigkeit von Go-Spring, indem Sie eine minimale Web-API erstellen

藏色散人
藏色散人nach vorne
2021-12-03 09:37:372946Durchsuche

Dieser Artikel wurde von der go-SpracheTutorial-Kolumne geschrieben, um vorzustellen, wie man mit Go-Spring eine minimale Web-API erstellt. Ich hoffe, dass er Freunden in Not hilfreich sein wird!

Die Go-Sprache ist für ihre Einfachheit bekannt. Ein sehr offensichtliches Beispiel ist, dass nur wenige Codes erreicht werden können, um eine kleinste Web-API zu erreichen. Go-Spring kombiniert die Vorteile der Einfachheit von Go und der automatischen Konfiguration von Spring. Dieser Artikel demonstriert die Einfachheit und Leistungsfähigkeit von Go-Spring anhand mehrerer Beispiele für die Implementierung minimaler Web-APIs.

To GopherDas Folgende ist das Hello World!-Programm, das mithilfe der Go-Standardbibliothek implementiert wurde. Es gibt wirklich wenig Code!

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 ist derzeit eines der beliebtesten Web-Frameworks. Es ist auch sehr einfach.

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()}

Werfen wir einen Blick auf das mit Go-Spring implementierte Hello World! Auch ganz einfach.

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()}

Sie können jedoch feststellen, dass in dem mit Go-Spring implementierten Beispiel ein anonym importiertes Paket vorhanden ist. Seine Funktion besteht darin, das Hello World-Programm anzuweisen, Gin als zugrunde liegende Webserver-Implementierung zu verwenden. Wenn wir diese Zeile in den folgenden Code ändern, kann das Programm weiterhin normal ausgeführt werden, aber dieses Mal verwendet das Programm Echo als zugrunde liegende Webserver-Implementierung.

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

Obwohl Go-Spring über eine weitere Zeile für den anonymen Paketimport verfügt, verfügt es über leistungsfähigere Funktionen als die Standardbibliothek.

Zu JavaerObwohl Go-Spring das gleiche Programmiermodell wie die Go-Standardbibliothek bereitstellt, ist es im Wesentlichen auf Basis von IoC (Dependency Injection) implementiert und verfügt daher über automatische Konfigurationsfunktionen, die die Standardbibliothek nicht bietet Im Vergleich zu Java Spring Boot ist die Programmiereffizienz von Go-Spring auch nicht schlecht.

Das Folgende ist ein Hello World!-Programm, das mit Java Spring Boot implementiert wurde. Im Gegensatz zum obigen Beispiel wird jedoch zur Demonstration der Abhängigkeitsinjektionsfunktionen von Java Spring auch der Wert der Umgebungsvariablen JAVA_HOME gedruckt. Der Code lautet wie folgt.

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);
  }}

Das Folgende ist ein Programm, das die Abhängigkeitsinjektionsfunktion von Go-Spring nutzt, um die Umgebungsvariable GOPATH und Hello World! gleichzeitig zu drucken. Der Code lautet wie folgt.

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()}

Wenn wir die beiden oben genannten Beispiele vergleichen, können wir sehen, dass Go-Spring die Integration von Go und Java Spring wirklich realisiert, Go (Syntax) einfach hält und gleichzeitig über die leistungsstarken Konfigurationsmöglichkeiten von Java Spring verfügt.

Interessieren Sie sich durch die Einleitung dieses Artikels für Go-Spring? Beeilen Sie sich und probieren Sie es aus!

Das obige ist der detaillierte Inhalt vonDemonstrieren Sie die Leistungsfähigkeit von Go-Spring, indem Sie eine minimale Web-API erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen