一个比picocontainer更小的IOC容器(已更新到0.2)
又一个IOC容器,Mcc微型组件容器。
特性
===
1、IOC type2和IOC type3 依赖注入
2、组件依赖性检查
3、组件自动装配
4、运行期动态注入
5、函数返回值注入(即工厂方法注入)
6、支持简单的组件生存期管理
Mcc 0.2 (2005.01.09)
====================
Change Log
----------
1、为ComponentDescriber类添加setProperty(RuntimeParameter parameter);
2、为ComponentDescriber类添加setInitMethod方法和setDestroyMethod支持组件的生存期管理;
3、为ComponentManager类添加destroy方法,可以手动销毁ComponentManager实例;
4、为ComponentAdapter类添加destroy方法,在组件管理者销毁时销毁组件实例;
5、实现了依赖检查;
6、解决在一个组件创建过程中某个组件需要被注入多次,创建多个实例的问题。
附件中是源代码,只有在登录后才可下载 稍稍看了一下源代码,跑了一下testcase ,有个地方不太明白
public void testRuntimeParameters();{ ComponentDescriberManager cdm = new ComponentDescriberManager();; ComponentDescriber cd = cdm.registerComponent("child",Child.class);; cd.setProperty("name",cdm.runtime(););; cd.setProperty("father",cdm.runtime(););; cd.setProperty("mother",cdm.runtime(););; ComponentManager cm = ComponentFactory.newComponentManager(cdm);; Man father = new Man();; father.setName("mike");; Women mother = new Women();; mother.setName("marry");; Child child = (Child);cm.getComponent("child",new Object[]{"john",father,mother});; assertNotNull("Component child not found!", child);; assertEquals(father, child.getFather(););; assertEquals(mother, child.getMother(););;}
Child child = (Child);cm.getComponent("child");child.setFather(father);;child.setMother(mother);;