Injectionがどうしても理解できないけど不自由なく使ってる人の感想である。ベースがJava脳なのでJavaのDIを使っている感想。どのくらい使っているかと言うと書いているソースのほとんどに@Injectionが書かれているくらい毎日使っている。staticなメソッドとして処理を書きたい。アプリケーション始動時に動的に読み込む設定などがあり、どうしてもstaticでは作れないクラス。そんなときにDIコンテナーに渡してやるとアプリケーション全体からstaticインスタンスのように使えるようになる。newを使わずインスタンス化されたインスタンスをインスタンスプールから引っ張り出して使えるようになる。したまとめstaticでは作れず、うかつにnewするのも難しいようなクラスがある場合(こういう時、という例は思いつかないが)、staticクラスにする方法を考えたり、シングルトンにする方法と一緒に、DIコンテナーに登録するという方法を調査してみると良いかもしれない。思うDIの理解DI、DIコンテナの利点は「インターフェースとその実装に分けることで本番処理のクラスとモックアップ用のクラスに分けて実装できる」という説明をよく見る。実際JavaのInterfaceで十分なんじゃ無いかと思ったりして、理解できない。Injectionを毎日のように使うか、というとフレームワークがDIを標準でサポートしているからだ。毎日使っているPlayFrameworkでは、Springのレイヤーモデルである、Controller、Service、Repositoryの相互保有関係をDIで行うことを標準としているからだ。DIの、Injectionされる側、ServiceクラスやRepositoryクラスのインスタンス化、インスタンスプールへの登録は裏で勝手にやってくれるので@Injectionと書くと自然と使えるようになる。DIの利点はFramework側の構築で十分に受けており、Frameworkを使って開発する側は、newを使った単なるインスタンス化、staticインスタンスで利用とあまり変わらない意識で使える、ということだろう。