ServiceLoader was added to java.util in JDK6, before that the basic technology was used in the Service class.
The ServiceLoader and DI interfaces solve similar problems, but are not equivalent technologies. ServiceLoader loads implementations of a specific interface found in the classpath. For example, if you have a program that reads Excel spreadsheets, and you find that the reader is able to read CSV files (which implement the same interface), you can drop the reader into the class path and make it accessible and selected as options in your program. (This means that your code is inherently more flexible).
( , Spring) , , , . Spring , , . , .