私は現在、プロジェクトを3つの部分に展開しています:US &インドで使用されるコアプロジェクト、両方に適用できる機能、米国の機能のみの米国プロジェクト、インドインドの機能だけを持つプロジェクト。休憩サービスで休憩サービスの入力パラメータが変更されました
しかし、今私は春のブートで問題が発生します。米国では、元のコアエンティティに2つの新しいフィールドが追加されているため、入力オブジェクトがPromSeckillRequestからUsPromSeckillRequestに変更されました。
今、私は自分のseckillインターフェイスをオーバーライドしたいと思います。私が望むもう一つのseckillインターフェースを書いてください。以下のコード:
@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);
}
}
しかし、私の目標は、以下のどのようなものであるか:
@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);
}
}
何か良い解決はこのためにありますか? 私は春のブーツを使用しています。
EDIT:
私はグーグルでチェックし、それが今まで春のブートのための弱点だ、ということを発見しました。なぜ私は春のブーツがこの点について完全なサポートをしていないのか分かりません。おそらく私たちはこれだけのようにすることができると思います。
これを解決するためにラッパーを追加したいと思いますが、リクエストをHashMap型またはString型に変更できるようですが、これは入力要求パラメータを有効にするのが難しいためです。私は私があなたの問題がある正確に何を推測しようとすると
私はあなたが何らかの形で(例えば、プロファイルを使用して)と仮定していまず:-)それを修正する方法を持っているものの情報から
正直言って私はあなたの問題が何かを知りません。あなたが他の投稿を参照している場合は、関連するコードを含めてください。 –
@ ChristophGrimmer-Dietrich入力パラメータエンティティが変更されたとき、どのようにあなたの残りのコントローラを無効にしますか? – CharlieShi
両方のコントローラが異なるエンドポイントをリッスンしますか? –