Pico\JMX\微容器以及对象的易管理性
微容器与编程模式
面向微容器编程目前是一种激动人心新的编程模式,总结上面这段代码,我们发现有一些面向微容器编程的规律或者称为模式。
首先需要定义一个容器解读的配置,它是字符串的:
一. 启动配置模式(JMX中称为MBeanForAppConfig pattern)
目的:定义容器启动时需要装载的JavaBeans/MBeans信息。
动机:容器启动时需要一些初始化配置,这样,容器启动可以装载这些对象。
例如上面的Groovy脚本就是一段启动配置模式,在笔者的JdonSD 2.5框架中,是通过XML实现启动配置的,如:
<model key="userId" class ="com.jdon.controller.test.model.UserTest">
<actionForm name="userActionForm"/>
<handler class="com.jdon.controller.test.web.UserHandler"/>
<service ref="mappingManagerEJB">
<getMethod name="getUser" />
<createMethod name="create" />
<updateMethod name="update" />
<deleteMethod name="delete" />
</service>
</model>
![]()
<model key="addressId" class ="com.jdon.controller.test.model.AddressTest">
<actionForm name="addressActionForm"/>
<service ref="mappingManagerEJB">
<getMethod name="getAddress" />
<createMethod name="createAddress" />
<updateMethod name="updateAddress" />
<deleteMethod name="deleteAddress" />
</service>
</model>
二. 记录跟踪模式(JMX中称为MBeanWritesToLog pattern)
目的:容器中的一些数据和状态需要拷贝到外部,如文件或图形输出等,以便跟踪。
动机:Log日志记录是非常准确和常用的程序跟踪调试手段,通过Log4j等之类工具实现输出,可以对容器中状态掌握了解非常清楚。如上面代码中可以记录获得WilmaImpl的属性helloCalled结果为true,如果将其输出即可实现记录跟踪。
三. 生命周期模式
目的:微容器有创建和消亡时刻,因此必须处理好容器中每个对象生命周期。
动机:生命周期是微容器的本质特征,处理好对象的生命周期,可以从设计上根本预防memory leak内存溢出或性能缓慢的基础缺陷,JMX在生命周期控制上非常深入,降低了编程复杂度。在Jdon论坛和2004年中国软件技术大会上我都反复强调生命周期的重要性,如果编程者考虑这点,说明对象在他的脑子里活起来了,而不是僵死的,这点也是全局工厂模式所不能替代的。
微容器和全局工厂模式
对于客户端来说,微容器和工厂模式性质是一致的,客户端不在乎你是微容器和工厂模式,都是获得创建对象,但是对于服务端来说就不一样了,工厂模式可能有很多类,这些类都没有被约束或被管理的,因此移植起来很麻烦;而微容器有自己的疆界,可以实现服务端的对象约束和管理,移植方便:提起容器就走,:),如下图: