Post in the Spring Forum:
"
The following is a solution to the circular dependency issue. It's especially useful when you have 3 or more services locked in a circular dependency. The solution involves breaking the circular dependency and instead using a custom injector to inject the dependency. This is achieved by using a BeanPostProcessor and some custom Annotations.
"
The short answer is that Qi4j is a framework for domain centric application development, including evolved concepts from AOP, DI and DDD.
Qi4j is an implementation of Composite Oriented Programming, using the standard Java 5 platform, without the use of any pre-processors or new language elements. Everything you know from Java 5 still applies and you can leverage both your experience and toolkits to become more productive with Composite Oriented Programming today.
Azuki is a framework designed to resolve various known problems in the software development lifecycle :
* Customizing an application without modifying the source code.
* Simplifying the integration of new technologies.
* Simplifying application maintenance.
* Simplifying application deployment.
* Separating contributors in a complex development project.
* Separating technical code from purely operationna
In what I hope will be the first of several articles about Guice, a new lightweight dependency injection container from Bob Lee and Kevin Bourillion from Google, this article examines the simplest and most obvious use case for the Guice container, for mocking or faking objects in unit tests. In future articles I will examine other, more ambitious areas where it can be used, including dependency elimination in large code bases.