I've been reading more and more about Google's Guice in different places. I finally decided to visit the source of all these news reports and blogs posts to understand for myself what it was all about. Guice is Dependency Injection (DI) through attribute tags in code. DI essentially changes the way you think about the use of factories and object building.
I've embraced DI in the past with my use of Spring Framework. The difference seems to be that Guice eliminates the need for mapping objects to one another to handle the injection. In that respect, it reminds me of the Microsoft Composite Application Block (CAB) way of handling service dependencies. Under CAB, simply register your service with a WorkItem and then attribute a property on the class being built and the framework will automatically inject that service.
Guice takes a slightly similar approach that uses the concept of Modules. According to the Guice User Guide: "With Guice, you implement modules. Guice passes a binder to your module, and your module uses the binder to map interfaces to implementations." You then attribute your code to specify where the injections of the implementations should take place.
I think I need to read some more before offering any more thoughts, but I do like the direction Guice has taken.