Dagger is a new dependency injection framework for the Android environment. It offers a subset of features of Google Guice (some of the developers work on both projects) but focuses on a lightweight solution in order to offer better performance. Dagger also attempts to report binding errors during compile time instead of run time.
Sonatype, the professional services company that sponsors the development of many key Maven committers, has announced that they will build Maven 3 atop the Guice Dependency Injection (DI) container instead of the Plexus DI container employed for Maven 1 and 2. Backwards compatability will be ensured using a shim to support Plexus.
Dependency Injection has become a much more accepted and accessible approach in recent years, driven by many factors including increased popularity in SOA, TDD, and many other factors. With this has come increased usage of Dependency Injection frameworks. Bob Martin advises, with examples, applying a decoupling approach between your application code and your Dependency Injection framework.
Sitebricks is a new web application development framework from Google that is built on top of Google Guice, and focuses on early error detection, low-footprint code, and fast development. InfoQ had a Q&A with the creator and Google Wave Core Engineer Dhanji Prasanna.
Earlier this year, Google and SpringSource announced that they were co-operating on a standard set of annotations to be used for dependency injection which were proposed via JSR-330. These annotations didn't line up with those proposed for JSR-299, which generated controversy that has now been resolved, with JSR-299 adopting the JSR-330 annotations and both moving forward to be part of Java EE 6.
Guice, a lightweight Java dependency injection framework created by Google, recently released version 2.0. InfoQ spoke with Google Developer Team member Jesse Wilson to learn more about this release and what capabilities it adds to Guice.
Dependency injection has been around for a while and there are quite a few frameworks which provide such capabilities for Java applications. Recently Google and SpringSource announced a partnership related to providing dependency injection for Java.
An ambitious and key part of Java EE 6, the Web Beans specification spans JSF/EJB integration, context management, dependency injection and AOP. The specification is currently in public review and the review period has been extended into 2009. An Alpha build is also available. InfoQ talks to Gavin King to find out more about the state of play of the specification and progress to date.
Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which was the winner of a 2001 Jolt Award. The book's publisher, Addison-Wesley, made an excerpt available to InfoQ which includes the contents of the fifth chapter, entitled 'Generics'. InfoQ asked Bloch several questions about the areas that the new edition covers.
The use of dynamic type-checking in static languages is often perceived as unavoidable on complex projects, even though workarounds necessary to enforce it tend to negatively impact the quality of code. According to Debasish Ghosh, features in static languages, i.e. Java generics, offer an opportunity to avoid runtime type checking and optimize the advantages of static typing.
Now that the dust has settled a bit from the initial release of Guice, the comparisons with Spring IoC and specifically with Spring JavaConfig are available. Guice and JavaConfig offer different approaches on putting IoC configuration into code using Java annotations.
Guice is a new open-source Dependency Injection framework for Java 5 that is closing in on a 1.0 release. Guice is a very annotation-driven, lightweight framework that provides an alternative to Spring, for a certain set of features.