Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/teverett/simpleioc

A simple IOC container
https://github.com/teverett/simpleioc

bean construction construction-filters injection ioc ioc-container java

Last synced: 24 days ago
JSON representation

A simple IOC container

Awesome Lists containing this project

README

        

![CI](https://github.com/teverett/simpleioc/workflows/CI/badge.svg)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/9c0f06b818bd47739ff23a1c0001326c)](https://www.codacy.com/app/teverett/simpleioc?utm_source=github.com&utm_medium=referral&utm_content=teverett/simpleioc&utm_campaign=Badge_Grade)
[![DepShield Badge](https://depshield.sonatype.org/badges/teverett/simpleioc/depshield.svg)](https://depshield.github.io)

Simple IOC
=============

Introduction
-------------------

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
-------------------

@Inject()
@Named("fuddleduddle")
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();
autobeanRegistry.load("beans.xml");
/*
* 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