Spring MVC-Controller-Methoden accespt verschiedene Parameter, die injiziert werden, bevor die Methode aufgerufen wird. Wie HttpServletRequest
, HttpServletResponse
, java.security.Principal
usw.Spring MVC Wie injizierbar für Controller-Methode
@RequestMapping("/test")
public String test(HttpServletRequest req, Principal user){}
Wie kann ich etwas erklären, die in einem controlelr Verfahren injiziert werden kann?
@RequestMapping("/test")
public String test(MyCustomInjectable myInjectable){}
mehr auf dem speziellen Fall:
Ich mag die HttpServletRequest
in einigen Servlet-Filter analysieren und um ein Objekt zu konstruieren, die in der Controller-Methode verwendet werden. Genauer gesagt werde ich einen JWT-Token analysieren und auf die Claims zugreifen.
Wenn es sich um das gleiche Anforderungsobjekt handelt, können Sie jeden Feldwert in der Anforderung als Anforderungsattribut festlegen. Spring erstellt automatisch Ihr benutzerdefiniertes Objekt basierend auf den Namen der Anforderungsattribute. Wenn Sie später in anderen Anfragen ein benutzerdefiniertes Objekt benötigen, können Sie eine Sitzung von der Anfrage erhalten und ein benutzerdefiniertes Objekt in der Sitzung mit dem Sitzungsattribut – Pragnani