ServiceLoader довольно прост и используется (неофициально) в JDK с 1.3. ServiceLoader, наконец, сделал его гражданином первого класса. Он просто ищет файл ресурсов с именем для вашего интерфейса, который в основном находится в каталоге META-INF библиотеки jar.
Этот файл содержит имя класса для загрузки.
Итак, у вас есть файл с именем:
META-INF / услуги / com.example.your.interface
и внутри него одна строка: com.you.your.interfaceImpl.
Вместо ServiceLoader мне нравится Netbeans Lookup. Работает с 1,5 (а может и с 1,4).
Из коробки он делает то же самое, что и ServiceLoader, и его тривиально использовать Но он предлагает гораздо больше гибкости.
Вот ссылка: http://openide.netbeans.org/lookup/
Вот статья о ServiceLoader, но там внизу упоминается Netbeans Lookup:
http://weblogs.java.net/blog/timboudreau/archive/2008/08/simple_dependen.html