在jbpm3中,采用反射实现了从配置文件中构造一个新的对象的功能,
使用方法如下:
String configuration =
"<s>hello</s>" +
"<stringConstructor>" +
" i want yoghurt" +
"</stringConstructor>" +
"<structuredElement>" +
" <surfboard length=/"270/" />" +
" <mast length=/"475/" />" +
" <boom length=/"160/" />" +
" <sail size=/"5.7/" />" +
"</structuredElement>" +
"<memberWithoutSetter>hello</memberWithoutSetter>";
Mix mix = (Mix) beanInstantiator.instantiate(Mix.class, configuration);
assertEquals( "hello", mix.s );
它的实现方法很简单,就是使用java.lang.reflect.*包,构造对象,然后根据解析的文件
为对象的属性赋值
其实,我们把它的实现稍做扩展,就可以实现我们自己的ioc:
Mix mix=(Mix)MyIoc.getbean("theMix");
和
Mix mix = (Mix) beanInstantiator.instantiate(Mix.class, configuration);
比较,显得更简单一些,呵呵.