Check out this great video about the new Java based inversion control framework from Google. The guys Kevin Bourillion and Bob Lee explains the concept behind dependency inversion principle (dip) and the core features inside Google Guice, called ‘juice’. The framework embraces and uses annotations instead of string identifiers (heavily used in Spring) to inject dependencies into the code. The most interesting feature is that Guice injects constructors, fields and methods (any methods with any number of arguments, not just setters) . You can also integrate Spring with Guice. Enjoy!