The scope of the NanoContainer project is to complement the PicoContainer project, providing it with additional functionality. The project comprises of several components which can either be adaptions in various guises of PicoContainer (eg composition by-class-name rather than by-class), or adaptations to external components bringing them closer to the Dependency Injection ideal - particularly Constructor Injection

The first and primary implementation language of NanoContainer is Java. NanoContainer has also a port for .NET.


NanoContainer is a Dependency Injection container that manages trees of PicoContainers.


Container adds the following features to PicoContainer:

  • Classloader (classpath) management, including very programmable permissions.
  • Class name based composition (via reflection)
  • Multiple meta-data and script language support: XML, Groovy, Beanshell, Jython, Rhino (Javascript)

Multiple meta-data languages are supported because we officially stand against a single meta-data language. Of the script languages, XML is the most widely used and mature, but Groovy is most promising because of the its optional builder syntax.

If you're tired of writing as much XML as you write Java, give the GroovyMarkup based composition script a go.


Booter is a mechanism for launching a tree of NanoContainer components and containers.


Deployer leverages on Commons VFS to deploy NanoContainer components and containers from archives and folders.

NanoContainer Components


NanoWar is a component that delivers NanoContainer to servlet container web-apps. It has works in conjunction with WebWork, WebWork2, Struts, Axis. It also has an homegrown simple web framework called NanoWeb.


NanoContainer adapters to persistence libraries, such as Hibernate.


A remoting framework in the NanoContainer style.


NanoContainer adapters other IoC frameworks, such as Avalon.


Some tools that are useful at build time rather than runtime.


Sandbox contains components that are still developing and not ready for release.


Dec 12, 2007

NanoContainer 1.1.2 and Nanowar 1.1.1 have been released. Downloads are available from Downloads.

Powered by Atlassian Confluence