Iky Container is an IoC 'proof of concept' framework, still at an early stage, but mature enough to provide those features :
		// Instanciate a container named "myContainer"
		ContainerI container = new DefaultContainer("myContainer");
		// Register a component under it's fully qualified class name container.registerComponentImplementation(MyClass.class);
// Register component under an alias container.registerComponentImplementation(MyClass.class, "myClass");
// Register an instance Object obj = new Object(); container.registerComponentInstance(obj);
// Retrieve objects MyClass = (MyClass) container.retrieveComponentInstance(MyClass.class)
An XML definition file for a container looks like this :
		<container>
    
		<!-- Containers Definition -->
			    
			<containers>
				<container>
				    <name>Internal Services</name>
				    <classname>net.wmind.container.DefaultContainer</classname>
				    <loadOnStartup>true</loadOnStartup>
				</container>
			</containers>
			    
			<!-- Component Definition -->
			    
			<components>
				<component>
					<name>Internationalization Service</name>
					<classname>net.wmind.iky.i18n.ResourceBundleService</classname>
					<alias>net.wmind.commons.PropertyResourceHelperI</alias>
					<loadOnStartup>true</loadOnStartup>
				</component>
				<component>
					<name>Local Console Service</name>
					<classname>net.wmind.iky.console.Console</classname>
					<loadOnStartup>true</loadOnStartup>
				</component>
			</components>
			
		</container>
		It defines a container named "Internal Services" that registers two components, "Internationalization Service" and "Local Console Service". The container is created this way :
			ComponentFactoryI factory = new XmlContainerFactory("someXmlFile.xml");
			ContainerI container = (ContainerI) factory.retrieveInstance();
		See the javadoc for the whole possibilities.