Ich extrahiere jetzt mein Projekt in drei Teile: ein Kernprojekt für USA & Indien mit Funktionen, die für beide von ihnen angewendet werden können, ein US-Projekt mit US-Funktionen nur ein Indien Projekt mit nur Indien Features.Rest Service Eingabe Param im Frühjahr geändert boot
Aber jetzt bekomme ich ein Problem, dass im Frühjahr Boot. In den USA werden zwei neue Dateien zur ursprünglichen Kerneinheit hinzugefügt, so dass das Eingabeobjekt von PromSeckillRequest in UsPromSeckillRequest geändert wurde. Nun möchte ich meine seckill-Schnittstelle außer Kraft setzen. Ich habe keine gute Wahl, aber schreibe zuerst eine seckill-Schnittstelle ab und schreibe dann eine weitere Schnittstelle, die ich will. Code unten:
@RestController("usShoppingController")
@RequestMapping(value = "/prom", method = RequestMethod.POST)
public class UsPromShoppingController extends PromShoppingController {
@RequestMapping("/seckillAbandon")
@Override
public JsonResponse seckill(@Valid @RequestBody PromSeckillRequest request) {
return null;
}
@RequestMapping("/seckill")
public JsonResponse usSeckill(@Valid @RequestBody UsPromSeckillRequest request) {
return super.seckill(request);
}
}
Aber was mein Ziel wie unten:
@RestController("usPromShoppingController")
@RequestMapping(value = "/prom", method = RequestMethod.POST)
public class UsPromShoppingController extends PromotionShoppingController {
@RequestMapping("/seckill")
@Override
public JsonResponse usSeckill(@Valid @RequestBody UsPromSeckillRequest request) {
return super.seckill(request);
}
}
Gibt es eine gute Lösung für dieses? Ich verwende Springboot.
EDIT:
ich mit Google überprüft und festgestellt, dass es für das Frühjahr Boot bis jetzt eine Schwachstelle ist. Ich weiß nicht, warum Spring Boot nicht volle Unterstützung für diesen Punkt zahlen. Ich denke, vielleicht können wir das nur so machen.
Ich möchte einen Wrapper hinzufügen, um dies zu lösen, aber ich kann nur die Anforderung zu HashMap-Typ oder String-Typ ändern, aber das ist nicht was ich will, weil es schwer wird, die Eingabeanforderungsparameter zu validieren.
Ehrlich gesagt habe ich keine Ahnung, was Ihr Problem ist. Falls Sie sich auf einen anderen Beitrag beziehen, geben Sie bitte den entsprechenden Code an. –
@ ChristophGrimmer-Dietrich Wie werden Sie Ihren Ruhe-Controller überschreiben, wenn sich die Eingabe-Parameter-Einheit geändert hat? – CharlieShi
Beide Controller hören unterschiedliche Endpunkte? –