Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/teverett/simpleioc
- Owner: teverett
- License: bsd-3-clause
- Created: 2015-10-26T23:35:58.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-05-23T02:56:51.000Z (over 1 year ago)
- Last Synced: 2023-05-23T04:15:27.962Z (over 1 year ago)
- Topics: bean, construction, construction-filters, injection, ioc, ioc-container, java
- Language: Java
- Homepage:
- Size: 6.26 MB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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
* autocreationDefining 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