PicoContainer is a highly embeddable full service Inversion of Control (IoC) container for components honor the Dependency Injection pattern. The project started in 2003 and pioneered Constructor Injection auto-wiring.
You could use it as a lightweight alternative to Sun's J2EE patterns for web applications or general solutions.
What is Dependency Injection? Martin Fowler has a good article from 2003, but here is another view: It is a good design pattern that, for large enterprise applications, facilitates:
Dependency Injection is quite often, but not exclusively, used by Agile practitioners. It counters the situation where the enterprise application:
Despite it being very compact in size (the core is ~224K and it has no mandatory dependencies outside the JDK), PicoContainer supports different dependency injection types (Constructor, Setter, Annotated Field / Method) and offers multiple lifecycle and monitoring strategies.
PicoContainer has originally been implemented in Java but is also available for other platforms and languages. These are detailed here.