{"id":16842897,"url":"https://github.com/teverett/simpleioc","last_synced_at":"2026-02-27T11:39:48.069Z","repository":{"id":9970176,"uuid":"45004520","full_name":"teverett/simpleioc","owner":"teverett","description":"A simple IOC container","archived":false,"fork":false,"pushed_at":"2025-01-05T20:52:07.000Z","size":6558,"stargazers_count":1,"open_issues_count":5,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-05T21:28:44.113Z","etag":null,"topics":["bean","construction","construction-filters","injection","ioc","ioc-container","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teverett.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-26T23:35:58.000Z","updated_at":"2025-01-05T20:52:10.000Z","dependencies_parsed_at":"2024-12-18T16:42:04.118Z","dependency_job_id":"cc2483d8-f1a9-4c66-9b26-610e5c4b0cea","html_url":"https://github.com/teverett/simpleioc","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teverett%2Fsimpleioc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teverett%2Fsimpleioc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teverett%2Fsimpleioc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teverett%2Fsimpleioc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teverett","download_url":"https://codeload.github.com/teverett/simpleioc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238191477,"owners_count":19431433,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bean","construction","construction-filters","injection","ioc","ioc-container","java"],"created_at":"2024-10-13T12:48:56.019Z","updated_at":"2025-10-25T18:31:03.784Z","avatar_url":"https://github.com/teverett.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CI](https://github.com/teverett/simpleioc/workflows/CI/badge.svg)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/9c0f06b818bd47739ff23a1c0001326c)](https://www.codacy.com/app/teverett/simpleioc?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=teverett/simpleioc\u0026amp;utm_campaign=Badge_Grade)\n[![DepShield Badge](https://depshield.sonatype.org/badges/teverett/simpleioc/depshield.svg)](https://depshield.github.io)\n\nSimple IOC\n=============\n\nIntroduction\n-------------------\n\nSimpleIOC is a framework for configuring autowire (JSR330) beans using XML.\n\nConfigurable bean properties include\n\n* caching (singleton)\n* ThreadLocal beans\n* autocreation\n\nDefining a Bean in code:\n-------------------\n\n\t@RegistryBean(name = \"regBean\", cached=false, autocreate=true)\n\tpublic class ExampleAnnotatedBean {\n\t}\n\n\nInjection via JSR330\n-------------------\n\n\t@Inject()\n\t@Named(\"fuddleduddle\")\n\tprivate SampleInjectedInterface interface2;\n\t\n\nConstruction filters can be used by SimpleIOC to wrap beans in arbitrary dynamic proxies at construction time. \n\nA typical example is using cglib to define a dynamic proxy which can be used to implement a custom annotation such as @Transactional\n\nFinding a bean in code\n-------------------\n\n\tfinal IOCBeanRegistry autobeanRegistry = new DefaultIOCBeanRegistry();\n\tautobeanRegistry.load(\"beans.xml\");\n\t/*\n\t * populate the beans we need\n\t */\n\tjcrPersistenceContext = (JcrPersistenceContext) autobeanRegistry.getBean(\"jcrpersistencecontext\");\n\n\nDefining Construction filters.  \n-------------------\n\n\tpublic class ExampleProxyCreatingFilter implements IOCInstantiationFilter {\n\t\tpublic Object filter(IOCBeanRegistry iocBeanRegistry, Object object, Bean bean) throws IOCException {\n\t\t\ttry {\n\t\t\t\treturn Proxy.newProxyInstance(object.getClass().getClassLoader(), object.getClass().getInterfaces(), new DebugProxy(object));\n\t\t\t} catch (final Exception e) {\n\t\t\t\tthrow new IOCException(\"Exception in filter\", e);\n\t\t\t}\n\t\t}\n\t}\n\nAddons Available  \n-------------------\n\n* simpleioc-struts.  Support for injection of JSR330 beans into Strut2 Actions\n* simpleioc-testng.  Support for TestNG Testing\n* simpleioc-junit.   Support for JUnit Testing\n* simpleioc-servlet. Support for Servlets\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteverett%2Fsimpleioc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteverett%2Fsimpleioc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteverett%2Fsimpleioc/lists"}