ScalaでのPlayのランタイム依存性注入対コンパイル時依存性注入に関する多くの情報が見つかりませんでした。コンパイル時間DIはより魅力的に見えますが、Playはそれとは逆の方向を促すようです。さらに、必要な定型コードの量と文書化の欠如が混乱しています。PlayランタイムDIの欠点
私の質問は、PlayでランタイムDIを使用する際の短所は何ですか?アプリケーションがロードされるとすぐにすべてのコンポーネントが配線されるわけではありません。
ScalaでのPlayのランタイム依存性注入対コンパイル時依存性注入に関する多くの情報が見つかりませんでした。コンパイル時間DIはより魅力的に見えますが、Playはそれとは逆の方向を促すようです。さらに、必要な定型コードの量と文書化の欠如が混乱しています。PlayランタイムDIの欠点
私の質問は、PlayでランタイムDIを使用する際の短所は何ですか?アプリケーションがロードされるとすぐにすべてのコンポーネントが配線されるわけではありません。
私の心の主な違いは、それぞれのソリューションでは、実行時にコンパイル時と配線時の障害が明らかになることです。したがって、実行時DIを使用してインプリメンテーションにインタフェースをバインドすることを忘れた場合は、アプリケーションをデプロイするときに(潜在的に)見つけることができます。この厄介な問題は、コンパイル時DIで、冗長で犠牲にして保存されます。
macwireをご覧になることをお勧めします。これは、定型句と関連するいくつかの問題を緩和する、コンパイル時のDI用の素敵なマクロベースのプロジェクトです。
githubにmacwireのサンプルプレイプロジェクトがあります。
再生時の実行時間コンポーネントが要求されたときにのみ、開始することができますか? – nmat
ウェブサイトの2つのセクションはかなり詳細です - https://playframework.com/documentation/2.5.x/ScalaDependencyInjectionとhttps://playframework.com/documentation/2.5.x/ScalaCompileTimeDependencyInjection –