ScalaでのDIはいくつもやり方があります。CakePatternを使った方法や、ImplicitParameterやReaderMonadを使った方法などです。javaっぽくGoogleGuiceみたいなDIコンテナを使うこともできます。 今回は数あるScalaのDIライブラリの中でも、コンストラクタDIを簡単に書けるMacWireというものを紹介します。 MacWireとは 詳細な説明はドキュメントがあります。 簡単に言うと、 コンストラクタDI最高。 コンパイル時に依存はチェックしたい。 依存関係書くの辛いからマクロで解決。 という感じで、マクロでDIの依存関係を解決してくれます。 MacWireなしのコンストラクタDIの例