Play 2.4にはGuiceを使ったJSR 330ベースのDI機能が導入されており、コントローラに対してコンポーネントを注入することができるようになっています。Playの標準機能もDI前提のAPIに移行しており、Play 2.4を使用する上では必須っぽい感じになっています。というわけで今日はこのDI機能を少し触ってみました。 まず、DIを使用するために従来はobjectとして実装する必要のあったコントローラをclassとして実装するようになっています。ただし、build.sbtの以下の行を削除すると従来通りobjectとしてコントローラを実装することができます。 routesGenerator := InjectedRoutesGenerator この場合は逆にDIが使用できなくなるわけですが、routesで以下のように@をつけるとそのコントローラのみDIを利用可能なclassとして実装