ServiceLoader (via: Servlet Garden @はてな)

SPI (Service Provider Interface) 用のクラスが JDK 1.6 から追加されていたとは知らなかったです。
http://java.sun.com/javase/6/docs/api/java/util/ServiceLoader.html


その昔は、自前で META-INF/services 内のファイルを読み込んでサービスをロードしていましたが、楽になったものです。
なんで、SPI の仕様つくったときに、ロード用のクラスは追加されなかったのか不思議な限りです。

今となっては、DI コンテナ使うことが多いので、あまり必要なかったりします・・・欲しいときには無く、不要なときにあるなんてorz

このクラスはJDK1.6以降でしか使えないのでNetBeansでは同等の機能があるクラスを定義してそちらを使っているようですが、この方式を dependency injectionと呼ぶことにしていると書いてありました。厳密にはDIではないかもしれないけれど、injectingされるスロットを作っているところから、DIと呼ぶことにしたそうです。

この時期に連日30Cを越える暑さが続く - Servlet Garden @はてな

↑コレですが、どちらかというと ServiceLocator ではないかと・・・
スロットにコンポーネントをインジェクションするって所かららしいですが。むー微妙。