Heim  >  Artikel  >  Java  >  Was sind die 5 häufig verwendeten Anmerkungen in SpringMVC?

Was sind die 5 häufig verwendeten Anmerkungen in SpringMVC?

coldplay.xixi
coldplay.xixiOriginal
2020-06-22 16:53:414303Durchsuche

Was sind die 5 häufig verwendeten Anmerkungen in SpringMVC?

Empfohlenes Tutorial: „Java-Video-Tutorial

Was sind die 5 häufig verwendeten Anmerkungen in springmvc?

Die fünf häufig verwendeten Anmerkungen in springmvc sind:

1. Komponentenanmerkungen:

1 @Component Fügen Sie @ vor der Klasse hinzu Die Definition einer Komponentenanmerkung wird vom Spring-Container erkannt und in eine Bean umgewandelt.

2. @Repository kommentiert die Dao-Implementierungsklasse (spezielle @Component)

3. @Service wird zum Kommentieren der Geschäftslogikschicht verwendet (spezielle @Component)

4. @Controller wird für Annotationen auf Kontrollebene verwendet (spezielle @Component)

Die oben genannten vier Annotationen werden alle für die Klasse annotiert, und die annotierte Klasse wird von Spring als Bean initialisiert und dann einheitlich verwaltet .

2. Anmerkungen zu Anforderungs- und Parametertypen:

1. @RequestMapping: Wird zur Verarbeitung der Anforderungsadressenzuordnung verwendet, die auf Klassen angewendet werden kann und Methoden überlegen.

●Wert: Definieren Sie die Zuordnungsadresse der Anforderungsanforderung

●Methode: Definieren Sie die Methode der Adressanforderung, einschließlich [GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE. 】Standardmäßig werden Get-Anfragen akzeptiert. Wenn die Anforderungsmethode von der definierten Methode abweicht, ist die Anforderung nicht erfolgreich.

●params: Definieren Sie die Parameterwerte, die in der Anforderungsanforderung enthalten sein müssen.

●Header: Definieren Sie, dass die Anforderungsanforderung bestimmte angegebene Anforderungsheader enthalten muss, z. B.: RequestMapping(value = „/something“, headers = „content-type=text/*“) gibt an, dass die Anforderung muss include Eine passende Anfrage ist ein Content-Header, der „text/html“ und „text/plain“ enthält.

●consumes: Definieren Sie die Art des Inhalts, der übermittelt werden soll.

●erzeugt: Geben Sie den zurückzugebenden Inhaltstyp an. Nur wenn der (Akzeptieren)-Typ im Anforderungsheader den angegebenen Typ enthält, wird er zurückgegeben.

@RequestMapping(value="/requestTest.do",params = {"name=sdf"},headers = {"Accept-Encoding=gzip, deflate, br"},method = RequestMethod.GET)
 
   public String getIndex(){
 
     System.out.println("请求成功");
 
     return "index";
 
   }

Der obige Code zeigt an, dass die Anforderung Die Methode ist eine GET-Anfrage. Die Anfrageparameter müssen den Parameter name=sdf enthalten, und dann muss der Anfrageheader den Typheader Accept-Encoding=gzip, deflate, br haben.

Auf diese Weise kann eine Anfrage durch Anmerkungen eingeschränkt werden.

2.@RequestParam: wird verwendet, um den Wert des eingehenden Parameters abzurufen

●Wert: der Name des Parameters

● Erforderlich: Definition Ob der eingehende Parameter erforderlich ist, der Standardwert ist true (ähnlich dem params-Attribut von @RequestMapping)

@RequestMapping("/requestParams1.do")
 
  public String requestParams1(@RequestParam(required = false) String name){
 
    System.out.println("name = "+name);
 
    return "index";
 
  }
 
  @RequestMapping("/requestParams2.do")
 
  public String requestParams2(@RequestParam(value = "name",required = false) String names){
 
    System.out.println("name = "+names);
 
    return "index";
 
  }

Die beiden Methoden zur Eingabe von Parametern sind gleich angezeigt, der Parametername und der Wert werden eingegeben. Wenn es keine explizite Deklaration gibt, wie bei der ersten Methode, sind die Namen der Eingabeparameter und Funktionsparametervariablen identisch.

3.@PathViriable: wird verwendet, um den Pfadparameterwert zu definieren

●Wert: der Name des Parameters

●erforderlich: definiert, ob der eingehender Parameter ist erforderlicher Wert

@RequestMapping("/{myname}/pathVariable2.do")  public String pathVariable2(@PathVariable(value = "myname") String name){
 
    System.out.println("myname = "+name);    return "index";
 
  }

Dieser Pfad deklariert {myname} als Pfadparameter, dann hat dieser Pfad einen beliebigen Wert und @PathVariable kann den Wert des Pfads basierend auf dem Wert abrufen.

4. @ResponseBody: Wirkt auf die Methode und kann das gesamte Rückgabeergebnis in einem bestimmten Format zurückgeben, z. B. im JSON- oder XML-Format.

@RequestMapping("/{myname}/pathVariable2.do")
 
   @ResponseBody
 
   public String pathVariable2(@PathVariable(value = "myname") String name){
 
     System.out.println("myname = "+name);
 
     return "index";
 
   }

Es wird keine Seite zurückgegeben, sondern die Zeichenfolge „index“ wird direkt auf der Seite gedruckt. Dies ähnelt tatsächlich dem folgenden Code.

PrintWriter out = resp.getWriter();
 
 out.print("index");
 
 out.flush();

5, @CookieValue: wird verwendet, um den angeforderten Cookie-Wert zu erhalten

@RequestMapping("/requestParams.do")
 
   public String requestParams(@CookieValue("JSESSIONID") String cookie){
 
     return "index";
 
   }


6. @ModelAttribute:

wird verwendet, um Parameter im Modell zu speichern. Wenn Sie eine Methode mit Anmerkungen versehen, wird diese im Prozessor ausgeführt Methode. Führen Sie das zurückgegebene Objekt aus und speichern Sie es dann in der Sitzung (Voraussetzung ist die Annotation @SessionAttributes). Wenn nicht angegeben, wird der Klassenname der Rückgabe angegeben Als Attributname wird der Typ (Kleinbuchstabe) verwendet.

@ModelAttribute("user")
 
  public UserEntity getUser(){
 
    UserEntity userEntityr = new UserEntity();
 
    userEntityr.setUsername("asdf");
 
    return userEntityr;
 
  }
 
  
 
  @RequestMapping("/modelTest.do")
 
  public String getUsers(@ModelAttribute("user") UserEntity user){
 
    System.out.println(user.getUsername());
 
    return "/index";
 
  }

Im obigen Code wird die Annotation @ModelAttribute("user") verwendet, die vor der Ausführung des Controllers ausgeführt wird. Anschließend werden Modelldaten mit dem Namen user generiert die Parameter. @ModelAttribute ruft die Parameter ab und wendet das Modell dann auf den Controller an,

<body>   ${user.username} </body>

7, @SessionAttributes

Standardmäßig speichert Next Spring MVC die Daten im Modell im Anforderungsfeld. Wenn eine Anfrage endet, sind die Daten ungültig. Wenn Sie es seitenübergreifend verwenden möchten. Dann müssen Sie die Sitzung verwenden. Die Annotation @SessionAttributes ermöglicht die Speicherung einer Kopie der Daten im Modell in der Sitzungsdomäne. Bei Verwendung mit @ModelAttribute("user") wird der Modellwert des entsprechenden Namens in der Sitzung

@Controller
 
@RequestMapping("/test")
 
@SessionAttributes(value = {"user","test1"})
 
public class LoginController{
 
  @ModelAttribute("user")
 
  public UserEntity getUser(){
 
    UserEntity userEntityr = new UserEntity();
 
    userEntityr.setUsername("asdf");
 
    return userEntityr;
 
  }
 
  
 
  @RequestMapping("/modelTest.do")
 
  public String getUsers(@ModelAttribute("user") UserEntity user ,HttpSession session){
 
    System.out.println(user.getUsername());
 
    System.out.println(session.getAttribute("user"));
 
    return "/index";
 
  }
 
}

in Kombination mit dem Code des vorherigen Beispiels gespeichert, die Annotation @SessionAttributes hinzugefügt und dann angefordert Beim zweiten Anfordern wird festgestellt, dass in der Sitzung ein anderer Wert vorhanden ist. Dies liegt daran, dass die Modelldaten nicht in der Sitzung gespeichert wurden Bei der ersten Anfrage wird es erst nach der Rücksendung gespeichert. Das letzte Modell kann bei der zweiten Anfrage erhalten werden

Hinweis: @ModelAttribute("user") UserEntity Wenn der Benutzer den Anmerkungsinhalt erhält, fragt er zunächst ab, ob in der Sitzung ein entsprechender Attributwert vorhanden ist, und fragt dann das Modell ab, wenn nicht.

Empfohlene verwandte Artikel: „Java-Entwicklungs-Tutorial

Das obige ist der detaillierte Inhalt vonWas sind die 5 häufig verwendeten Anmerkungen in SpringMVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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