其实你自己可以写一个Context来摩访它的实现:
这个context包含一个容器,类似map,list 可以,用以缓存生成的对象;
这个Context首先读取xml文件,分析每一个<bean>元素,如果这个bean没有注入property,像这样:<bean id="cat" class="com.xxxx.Cat" />,则像如下的方法久可以实例化这个bean:
Object obj = Thread.currentThread().getContextClassLoader().loadClass("com.xxxx.Cat").newInstance();
然后把这个bean放到缓存容器中:map.put("cat", obj);
则context.getBean("bean_id")就可以这么做:map.get("bean_id");
这是分析的最简单的情况;
复杂的,比如有注入property,用到ref的,也只是多几个判断;
比如
<bean id="cat" class="com.XXXX.Cat">
    <property name="color" value="yellow" />
</bean>
则:
Object obj = Thread.currentThread().getContextClassLoader().loadClass("com.xxxx.Cat").newInstance();
根据pojo命名法则,可知属性color的setter方法是setColor;
obj.getClass().getDeclaredMethod("setColor", {param types}).invoke(obj, Object[]{"yellow"});
这样这个猫就有颜色了,把它放到map即可。
其他复杂的情况都是从简单来的。