Guice is a new Dependency Injection framework written specifically for Java 5 and up, and is thus able to think of things in that context. Generics support is first class etc.
Some people have already asked about competition with Spring, which really shows how many people don’t get what Spring is :)
Spring is an enterprise Java productivity framework in my mind. It happens to include a DI framework at the heart of it, but that isn’t all it is.
Guice on the other hand aims to just tackle the DI piece, and comes at it from a different angle.
Rather than seeing the competition I saw the possibilities of using the two together. They already both support the AOP Alliance APIs so you can play nicely. You can choose to use Guice DI with Spring helpers.
So, before we get into a “Spring vs. Guice” mindset, let’s remember how incredibly different they are.
You can read about a comparison from the Guice point of view.
And then Joe goes and writes A Spring competitor from Google :)