In unserem Projekt haben wir eine Schnittstelle und eine implementierende Klasse In der Schnittstelle stellen wir alle Methodensignaturen bereit, die mit @RequestMapping Annotation versehen sind . Die Klasse, die diese Schnittstelle implementiert, wird mit @RestController- und @RequestMapping-Annotationen versehen und überschreibt alle Methoden in dieser Schnittstelle.Spring Boot erstellt das Restful WS nicht, wenn wir @RequestBody oder @RequestHeader als Methodenparameter angeben
Ausgabe: In jedem der Verfahren, Wenn i @RequestBody oder @RequestHeader als Parameter geben, Frühling Boot nicht einmal schafft die/v1/MyApi/Last-URL in der @RequestMapping in der Schnittstelle gegeben. Aber wenn ich nur leere Parameter gebe, wird die URL erstellt.
Weiter eingraben, ich fand auch heraus, dass, wenn ich die @RequestMapping Annotationen von den Interface-Methoden entfernen und in den Methoden in der Controller-Klasse zur Verfügung stellen, unabhängig davon, irgendetwas im Methodenparameter zu geben.
Ich möchte nur wissen, warum das @RequestMapping in der Schnittstelle nicht berücksichtigt wird, wenn wir @RequestBody oder @RequestHeader als Methodenparameter verwenden.
@Controller
@RequestMapping("/v1/myapi/")
public class MyControllerClass implements MyInterface{
@Override
public ResponseObject method1(@RequestBody String request, @RequestHeader(name= HttpHeaders.AUTHORIZATION) String token){
}
//Interface Class
public interface MyInterface {
@RequestMapping(method = RequestMethod.POST,value="/load",produces = MediaType.APPLICATION_JSON_VALUE)
ResponseObject method1(@RequestBody String request, @RequestHeader(name= HttpHeaders.AUTHORIZATION) String token) throws Exception;
}
Danke für das Zeigen. Jetzt macht es Sinn und ich kann sehen, dass alle meine RequestMapping unabhängig von den darin enthaltenen Methodenparametern erstellt werden. –