DI

コンテナ(箱)にインスタンス(道具)を積めて呼び出す。

コンテナ自身のインスタンスもプロパティで設定して起動時に生成する。そうすることでミドルウェアが起動時にサーバー上に生成され、ソフトウェアがそれを利用して走り出す。

Assembler( ){
register(Hoge.class)
register(new Hoge2())
}

みたいたイメージ。(携帯からなのでいろいろ省略してます)

ログ生成とかORマッパーとか忘れてしまいがち(しかし間違えてはならない)ものを起動時に生成してあげることに利用します。

とまあ、いろいろな場面で役にたっていることを理解しました。