windchill交流第二篇:让自己的方法随windchill服务启动---添加windchill客制化服务
所有文章全部原创,如有不对,欢迎留言指正。
通过添加Windchill客制化服务,可以让自己业务相关的对象在Windchill启动时进行初始化。如定制数据缓存,初始化静态变量,从而减少用户访问数据库的频率,提高访问相关数据的速度。
废话不多说,直接上代码,照着下面的步骤一步步来就ok。
/*************************************************************/
第一步:定义自己的业务接口ServiceInterface ,用来存放一些静态变量,方便其实现类的使用,我在这里将静态变量定义到了实现类中,所以只需写一个空的接口即可,代码如下:
package com.wcservice;/** * * <p>Description: </p> * @author: * @time: 2010-4-30 下午05:03:35 * @version 1.0 */public interface ServiceInterface { //##begin user.attributes preserve=yes //##end user.attributes //##begin static.initialization preserve=yes //##end static.initialization //##begin user.operations preserve=yes //##end user.operations}
package com.wcservice;import java.io.Serializable;import java.lang.String;import wt.method.RemoteMethodServer;import wt.services.Manager;import wt.services.ManagerServiceFactory;import wt.util.WTException;/** * * <p>Description: </p> * @author: * @time: 2010-4-30 下午04:57:53 * @version 1.0 */public class ServiceInterfaceImp implements wt.method.RemoteAccess,ServiceInterface, Serializable {// --- Attribute Section ---static final boolean SERVER = RemoteMethodServer.ServerFlag;private static final String FC_RESOURCE = "wt.fc.fcResource";private static final String CLASSNAME = ServiceInterfaceImp.class.getName();// --- Operation Section --- /** * @return Manager * @exception wt.util.WTException */private static Manager getManager() throws WTException {Manager manager = ManagerServiceFactory.getDefault().getManager(ServiceInterface.class);if (manager == null) {Object[] param = {CLASSNAME};throw new WTException(FC_RESOURCE,wt.fc.fcResource.UNREGISTERED_SERVICE, param);}return manager;}}
package com.wcservice;import java.io.Serializable;import wt.services.ManagerException;import wt.services.StandardManager;import wt.util.WTException;/** * * <p>Description: 定义windchill客制化服务启动和停止的方法,同时定义创建该类对象的方法 </p> * @author: * @time: 2010-4-30 下午05:18:26 * @version 1.0 */public class MyBusiness extends StandardManager implements ServiceInterface,Serializable {// --- Operation Section --- /** * 返回MyBusiness的对象,并调用父类StandardManager的initialize()方法进行初始化,该方法内容无需修改,方法名格式为new+你的类名 */public static MyBusiness newMyBusiness() throws WTException {System.out.println(MyBusiness.class.getName()+".newMyBusiness(),MyBusiness对象初始化完毕。");MyBusiness instance = new MyBusiness();instance.initialize();return instance;}// ##begin user.operations preserve=yesprotected void performStartupProcess() throws ManagerException {//write your business here,while windchill start,it executeSystem.out.println(MyBusiness.class.getName()+".performStartupProcess()方法执行,windchill服务正在启动!");}protected void performShutdownProcess() throws ManagerException {//write your business here,while windchill stop,it execute System.out.println(MyBusiness.class.getName()+".performShutdownProcess()方法执行,windchill服务正在停止!");}}
<!--my cache--><!--只需修改value值,格式为 自定义接口+"/"+自定义实现类---><Property name="wt.services.service.3500" overridable="true" targetFile="codebase/wt.properties" value="com.wcservice.ServiceInterface/com.wcservice.MyBusiness"/>
xconfmanager -p