Skip to content
A simple IOC container
Java Shell
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

Travis Coverity Scan Codacy Badge DepShield Badge

Simple IOC


SimpleIOC is a framework for configuring autowire (JSR330) beans using XML.

Configurable bean properties include

  • caching (singleton)
  • ThreadLocal beans
  • autocreation

Defining a Bean in code:

@RegistryBean(name = "regBean", cached=false, autocreate=true)
public class ExampleAnnotatedBean {

Injection via JSR330

private SampleInjectedInterface interface2;

Construction filters can be used by SimpleIOC to wrap beans in arbitrary dynamic proxies at construction time.

A typical example is using cglib to define a dynamic proxy which can be used to implement a custom annotation such as @Transactional

Finding a bean in code

final IOCBeanRegistry autobeanRegistry = new DefaultIOCBeanRegistry();
 * populate the beans we need
jcrPersistenceContext = (JcrPersistenceContext) autobeanRegistry.getBean("jcrpersistencecontext");

Defining Construction filters.

public class ExampleProxyCreatingFilter implements IOCInstantiationFilter {
	public Object filter(IOCBeanRegistry iocBeanRegistry, Object object, Bean bean) throws IOCException {
		try {
			return Proxy.newProxyInstance(object.getClass().getClassLoader(), object.getClass().getInterfaces(), new DebugProxy(object));
		} catch (final Exception e) {
			throw new IOCException("Exception in filter", e);

Addons Available

  • simpleioc-struts. Support for injection of JSR330 beans into Strut2 Actions
  • simpleioc-testng. Support for TestNG Testing
  • simpleioc-junit. Support for JUnit Testing
  • simpleioc-servlet. Support for Servlets
You can’t perform that action at this time.