Google Guice (my favorite DI framework for Java) has a neat extension called "Multibindings" that allows you to auto-magically inject a collection of objects that implement a particular interface. This allows you to model SPI-style interfaces with ease.
Spark is a new micro-application-server for Java that models itself after Ruby's Sinatra library. While it's still Java, it shows that minimalism is possible with this crufty old language.