Heim > Java > javaLernprogramm > Hauptteil

Was sind die allgemeinen Framework-Anmerkungen für Spring Boot Rest?

王林
Freigeben: 2023-05-11 17:22:06
nach vorne
1295 Leute haben es durchsucht

Voraussetzungen, um mit Spring Boot Rest zu beginnen

Das Wichtigste, was Sie wissen müssen, ist der Spring-Container oder IOC. Darüber hinaus müssen Sie über Grundkenntnisse in Java-Annotationen verfügen. Weil Spring Boot-Anwendungen voller Anmerkungen sind. Zu guter Letzt sollte das Konzept von REST geklärt werden, zumindest in den Grundkonzepten. Zum Beispiel GET, POST, PUT, DELETE und Request-Text und -Antwort, Header usw.

Erstellen Sie ein Spring Boot-Projekt in Spring Initializer

Das Beste an Spring Boot ist, dass es eine Webanwendung für den Einstieg hat. Klicken Sie einfach auf ein paar Formularfelder und Schaltflächen und schon ist Ihre Startdatei fertig. Dazu gehört auch Pom. xml, das alle erforderlichen Abhängigkeiten enthält. Gehen Sie einfach zu Spring Initializer: https://start.spring.io/. Geben Sie die entsprechenden Daten ein, wie im Screenshot unten gezeigt. Klicken Sie dann oben rechts auf die Schaltfläche Abhängigkeiten hinzufügen. Geben Sie Web ein und wählen Sie es aus. Ich werde auch Lombok für Log und Pojo hinzufügen.

Was sind die allgemeinen Framework-Anmerkungen für Spring Boot Rest?

Sobald Sie fertig sind, klicken Sie einfach auf die Schaltfläche „Generieren“ und eine ZIP-Datei (pom.xml) mit diesen Dateien wird heruntergeladen. Entpacken Sie es und öffnen Sie es in der IDE. Ich werde IntelliJ IDEA verwenden. Diese IDE hilft mir, verschiedene Funktionen zu nutzen, um meine Arbeitseffizienz zu verbessern. Häufig verwendete Plug-Ins für IDE

Spring Boot-Annotationen

Der gesamte Spring Boot basiert auf Anmerkungen. Es gibt verschiedene Hinweise für unterschiedliche Bedürfnisse und Vorgehensweisen. Der Rest des Abschnitts besteht aus 4-5 Hauptnoten. Schauen wir sie uns einzeln an und wenden sie auf unser Beispiel an. Die Annotation @RestController wird für die Klasse

@RestController

verwendet. Es definiert die Klasse als Controller für Rest. Dies ist eine RESTful-Version des Controllers, die die Kombination ResponseBy hinzufügt. Auf diese Weise wird Ihre Antwort automatisch in JSON, XML oder einen beliebigen definierten Antworttyp konvertiert, ohne dass eine separate ResponseBy-Annotation erforderlich ist. @RestController注释。它将类定义为Rest的控制器。这是一个RESTful版本的控制器,添加了ResponseBy的组合。这样,您的响应就会自动转换为JSON、XML或任何已定义的响应类型,而无需单独使用ResponseBy注释。

@RestController
public class ArticleRestController {}
Nach dem Login kopieren

其余的注释在@RestController类下使用。

@RequestMapping

用于将特定端点映射到函数或方法。这有助于定义端点的路径、方法、响应类型、请求类型等。

@RequestMapping(value = "/articles", method = RequestMethod.GET,  produces = "application/json")
public List<Article> getArticles() { }
Nach dem Login kopieren

在上面的示例中,值表示它映射到的路径。例如,localhost:8080/articles。方法类型是GET,它生成“application/json”作为响应(不过,这是默认值,您可以跳过它)。

@RequestParam

URL中的查询参数,即?key=value&key1=value1@RequestParam注释获取。这用于函数的参数。它有各种选项,如requireddefaultValue等。然后将查询参数加载到指定的参数中。

@RequestMapping(value = "/article", method = RequestMethod.GET)
public Article getArticleByName(
   @RequestParam(value = "articleName", required = true) String articleName
) {}
Nach dem Login kopieren

在上面的例子中,如果我们调用URL GET localhost/article?articleName=springboot,将在articleName参数中加载“springboot”。我已经把reuired=true,所以如果我们不传递articleName,它将向用户抛出一个错误。

@PathVariable

有没有想过,在不传递查询参数的情况下,服务器如何知道要加载哪篇文章?看看这篇文章的网址 post URL不包含查询参数,而是一个普通的斜杠分隔字符串。服务器在PathVariable的帮助下读取它,它看起来是这样的,/article/{articleslaug}。替换{articleSlug}的任何字符串都将被视为PathVariable

@RequestMapping(value = "/article/{articleSlug}", method = RequestMethod.GET)
public Article getArticle(@PathVariable("articleSlug") String articleSlug) {}
Nach dem Login kopieren

请记住,{articleSlug}RequestMappingPathVariable中应该是相同的(没有{})。如果不匹配,则无法加载。

@RequestBody

对于POST或PUT方法,您不会通过URL获取所有数据,对吗?这些方法有一个适当的请求主体。RequestBody注释有助于将给定的请求正文自动映射到参数。主要是JSON到POJO。

@RequestMapping(value = "/article", method = RequestMethod.POST)
public Article createArticle(@RequestBody NewArticlePojo newArticle){}
Nach dem Login kopieren

请求主体将自动映射到NewArticlePojo类,并基于键填充字段。

REST方法的特定注释

在上面的解释中,您一定已经看到我使用特定的方法编写了RequestMapping。但这太多余了。为了解决这个问题,Spring Boot提供了预定义的方法映射。这些只是@RequestMapping的扩展。

@GetMapping

@GetMapping用于将RequestMapping替换为method=RequestMethod。获取参数。现在通过查看,我们知道这是一个GET请求。

@PostMapping和@PutMapping

PostMapping是用method=RequestMethod替换RequestMapping。类似地,PutMapping将用method=RequestMethod替换RequestMethod.PUT

@DeleteMapping

DeleteMapping用method=RequestMethod替换RequestMethod.DELETErrreee

Der Rest der Anmerkungen wird unter der Klasse @RestController verwendet. 🎜🎜@RequestMapping🎜🎜 wird verwendet, um einen bestimmten Endpunkt einer Funktion oder Methode zuzuordnen. Dies hilft dabei, den Pfad, die Methode, den Antworttyp, den Anforderungstyp usw. des Endpunkts zu definieren. 🎜rrreee🎜Im obigen Beispiel stellt der Wert den Pfad dar, dem er zugeordnet ist. Beispiel: localhost:8080/articles. Der Methodentyp ist GET, der „application/json“ als Antwort generiert (dies ist jedoch die Standardeinstellung und Sie können sie überspringen). 🎜🎜@RequestParam🎜🎜Der Abfrageparameter in der URL, also ? key=value&key1=value1 wird durch die Annotation @RequestParam erhalten. Dies wird für Funktionsparameter verwendet. Es gibt verschiedene Optionen wie required, defaultValue usw. Laden Sie dann die Abfrageparameter in die angegebenen Parameter. 🎜rrreee🎜Wenn wir im obigen Beispiel die URL GET localhost/article aufrufen? ArticleName=springboot, „springboot“ wird in den ArticleName-Parameter geladen. Ich habe reuired=true eingegeben. Wenn wir also articleName nicht übergeben, wird dem Benutzer eine Fehlermeldung angezeigt. 🎜🎜@PathVariable🎜🎜Haben Sie sich jemals gefragt, wie der Server weiß, welcher Artikel geladen werden soll, ohne Abfrageparameter zu übergeben? Schauen Sie sich die URL dieses Beitrags an. Die Beitrags-URL enthält keine Abfrageparameter, sondern ist eine einfache durch Schrägstriche getrennte Zeichenfolge. Der Server liest es mit Hilfe von PathVariable und es sieht so aus: /article/{articleslaug}. Jede Zeichenfolge, die {articleSlug} ersetzt, wird als PathVariable behandelt. 🎜rrreee🎜Bitte denken Sie daran, dass {articleSlug} in RequestMapping und PathVariable gleich sein sollte (ohne {} >). ). Wenn es nicht übereinstimmt, wird es nicht geladen. 🎜🎜@RequestBody🎜🎜Für die POST- oder PUT-Methode erhalten Sie nicht alle Daten über die URL, oder? Diese Methoden verfügen über einen entsprechenden Anforderungstext. Die Annotation RequestBody hilft dabei, einen bestimmten Anforderungstext automatisch Parametern zuzuordnen. Hauptsächlich JSON zu POJO. 🎜rrreee🎜Der Anforderungstext wird automatisch der Klasse NewArticlePojo zugeordnet und die Felder werden basierend auf dem Schlüssel ausgefüllt. 🎜🎜Spezifische Anmerkungen für REST-Methoden🎜🎜In der obigen Erklärung müssen Sie gesehen haben, dass ich RequestMapping mit einer bestimmten Methode geschrieben habe. Aber das ist zu überflüssig. Um dieses Problem zu lösen, stellt Spring Boot vordefinierte Methodenzuordnungen bereit. Dies sind lediglich Erweiterungen von @RequestMapping. 🎜🎜@GetMapping🎜🎜@GetMapping wird verwendet, um RequestMapping durch method=RequestMethod zu ersetzen. Parameter abrufen. Wenn wir es uns nun ansehen, wissen wir, dass es sich um eine GET-Anfrage handelt. 🎜🎜@PostMapping und @PutMapping🎜🎜PostMapping ersetzt RequestMapping durch method=RequestMethod. In ähnlicher Weise ersetzt PutMapping RequestMethod.PUT durch method=RequestMethod🎜🎜@DeleteMapping🎜🎜DeleteMapping durch method=RequestMethod code>Ersetzen Sie RequestMethod.DELETE🎜

Das obige ist der detaillierte Inhalt vonWas sind die allgemeinen Framework-Anmerkungen für Spring Boot Rest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage