インターフェイスに@RequestMapping使用することは悪い考えますか?

学ぼうとしている :

私は、このチェックアウトSOポスト使用について説明RequestMappingインターフェイスでは。が、ポストが含まれている方法でこれを達成するが、それはこれを行うの長所と短所については言及しませんが。

アーキテクチャ面では、これはインタフェースとしてコントローラを使用することは悪い考えですか?私たちは、コントローラの多型の面でどのような利益を達成するのだろうか?

JBX:

置くと間違って何もありません@RequestMappingインターフェイスでは。しかし、あなたがそれを行うには正当な理由があることを確認します。多型は、おそらく正当な理由ではありません、あなたはランタイムまたはそのような何かにスワップイン異なる具体的な実装を持っていません。

一方、例えば、闊歩コード生成は、とのインターフェースを生成@RequestMapping(一緒にし、メソッド、フィールドおよびリターンタイプのすべての注釈を@Api定義など)。お使いのコントローラは、このインタフェースを実装しています。それだけで、もともとYAMLで定義されて闊歩/ OpenAPIのインタフェース定義を尊重するために、あなたを強制されているため、この場合には、多くの意味になります。素敵な副作用は、それがあなたのコントローラよりクリーンになることがあります。(クライアントは、独自の言語フレームワークのために、独自のクライアントスタブを生成するために、同じYAMLを使用することができます)。

あなたがこれを行うために選択した場合、必ずしもすべての注釈は継承されていただけに非常に最近修正されたいくつかのバグがありましたので、あなたは、春のフレームワークの最新バージョンを使用します。https://github.com/spring-projects/spring-framework/issues/15682

古い春バージョンで立ち往生している場合、あなたはあなたのコントローラに同じ注釈を繰り返す必要があります。

だから、これは理にかなっている本当の理由は、インターフェイス契約を強制すると、実際の具体的な実装から(インターフェースに関連するすべての情報と一緒に)インタフェースの定義を分離することです。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=222652&siteId=1