Ich habe viele Beispiele gesehen, wo die @Controller Annotation in Web-Anwendungen verwendet wird, die mit Feder f/w bauen. Außerdem habe ich @RestController für das Erstellen einer Webanwendung im Frühjahr gesehen. Und drittens, was ich in der Regel Web-Anwendung zu erstellen bin, ist durch Angabe von Feder Servlet in web.xml und Erstellen von Controller-Klassen durch Implementierung der Controller-Schnittstelle oder durch Erweiterung entweder AbstractController. Was ist der Unterschied in diesen Ansätzen? Gibt es noch andere Ansätze als das, was ich erwähnt habe?Wie viele Möglichkeiten können wir Web-Anwendung im Frühjahr erstellen
Antwort
@Controller wird normalerweise für ein MVC-Controller-System verwendet und ermöglicht Ihnen, ein Modell aus der Steuerung in Ihre Ansicht zurückzugeben.
@RestController wird normalerweise für REST-konforme Web-Services verwendet und gibt normalerweise XML oder JSON aus, die Sie von POJOs mit Bibliotheken entfernen oder die ToString() - Methode des POJO überschreiben können.
In allen Fällen (außer Sie verwenden Spring Boot) verwenden Sie in der Regel immer noch eine web.xml. Ich bevorzuge den Annotation-Ansatz (@Controller und/oder @RestController), da dies bedeutet, dass man sich nicht mit XML-Dateien herumärgern muss.
Ich ziehe es vor, die dritte Methode, die Sie erwähnt haben, nicht zu verwenden, da sie sich für mich weniger flexibel und komplizierter anfühlt.
Abgesehen von der obigen Antwort möchte ich einige Anwendungsfälle von @Controller
Annotation hinzufügen, die für Sie hilfreich sein könnten.
1) Mehrere URL-Muster können mit einer einzigen Methode behandelt werden.
@RequestMapping({"/hello", "/hi", "/greetings"})
2) Controller bei der Klasse und Methode Ebene
@Controller
@RequestMapping("/admin")
public class AdminController {
@RequestMapping("/listUsers")
public ModelAndView listUsers() {
}
@RequestMapping("/saveUser")
public ModelAndView saveUser(User user) {
}
@RequestMapping("/deleteUser")
public ModelAndView deleteUser(User user) {
}
}
Hinweis:
@RequestMapping("admin/getVendorDetails")
public @ResponseBody <Return Type> getVendorDetails(HttpServletRequest request){
...
}
: Wenn Sie statt @RestController verwenden @Controller möchten Sie @ResponseBody Anmerkung wie unten hinzufügen müssen
- 1. Können wir im Frühjahr eine Schnittstelle ohne jegliche Implementierung autowire?
- 2. Wie viele Themen können wir in Firebase Cloud Messaging erstellen?
- 3. Wie viele Möglichkeiten, um ein Objekt in Java zu erstellen?
- 4. Wie viele Möglichkeiten können wir eine Zahl in k ungleichen Summanden teilen?
- 5. In wie viele Möglichkeiten können wir ein Paket von anderen Paket in ssis aufrufen oder ausführen
- 6. Wann werden wir im Frühjahr ApplicationContext.xml verwenden?
- 7. Wie werden wir die Webservice-Antwort im Frühjahr cachen?
- 8. Rezidivansatz: Wie können wir alle Möglichkeiten für Zahnspangen generieren?
- 9. Wie können Transaktionen im Frühjahr debuggen?
- 10. Wie können doppelte Einreichung im Frühjahr MVC?
- 11. Warum brauchen wir Kurien im Frühjahr HATEOAS
- 12. Wie können wir testen, dass eine Klasse viele Schnittstellen implementiert?
- 13. Wie können wir die Sprache unserer Webanwendung in ASP.NET ändern?
- 14. Wie können wir Webanwendung auf Visual Studio Code debuggen?
- 15. Können wir Login-Seite wie Google erstellen?
- 16. Wie viele benutzerdefinierte Schemas können wir in SQL Server haben?
- 17. Wie viele JVM können wir in einer Maschine haben?
- 18. Wie Hintergrundprozess im Frühjahr Webapp erstellen?
- 19. Wie können wir einen zylindrischen Viewpager erstellen?
- 20. können wir telefonieren im iphone?
- 21. So erstellen Sie Module im Frühjahr
- 22. Verwirrt von, wie viele Möglichkeiten gibt, NODE_ENV
- 23. können wir Instanzvariable im selben Klassenstandardkonstruktor dieses Klassentyps erstellen?
- 24. Wie können Benutzerdaten im Frühjahr am besten gespeichert werden?
- 25. Wie viele benutzerdefinierte Tabs können wir in der Facebook-Seite erstellen?
- 26. Wie viele Routen können wir in routeconfig.cs in asp.net mvc
- 27. Wie können wir viele mobile Tests in vielen Geräten automatisieren?
- 28. Wie zählen wir, wie viele Mehrfachauswahl im Diagrammbereich?
- 29. Sollten wir db-Operation mit @PathVariable im Frühjahr durchführen?
- 30. Binding Annotation im Frühjahr
Können wir die Anmerkung ** Controller ** mit ** RequestMapping ** zum Erstellen von RESTful-Webdiensten verwenden? – Ankit
Ja du kannst, ich benutze es die ganze Zeit. –