spring工厂类
1.使用到了单例模式和同步方法:
/* * 版权所有: 版权所有(C) 2005,中兴通讯 * 文件编号: * 文件名称: SpringServiceFactory.java * 系统编号: * 系统名称: XX系统 * 模块编号: EccWeb * 模块名称: XXXX模块 * 设计文件: XXXXX.mdl * 完成日期: 2005-8-3 * 作 者: 郝焕 * 内容摘要: 用于产生获取spring取得的实例 * * 属性描述: 该类有属性: * 01. * 02. * 方法描述: 该类有方法: * 01. * * 文件调用: * * 修改记录1: * 修改日期: * 修 改 人: * 修改内容: */ package com.zte.ecc.factory; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletContext; import com.zte.ssb.web.context.WebApplicationContext; import com.zte.ssb.web.context.support.WebApplicationContextUtils; import com.zte.ecc.util.SystemServletContext; /** * 类 编 号: 1 * 类 名 称: SpringServiceFactory * 内容摘要: 用于产生获取spring取得的实例 * 属性描述: 该类有属性: * 01. XXXXXXXX * * 方法描述: 该类有方法: * 01. XXXXXXXX * * @author haohuan * @完成日期 2005-8-3 */ public class SpringServiceFactory { /** * 唯一实例 */ private static SpringServiceFactory instance; /** * 服务类缓存map */ // private Map services = new HashMap(); /** * @roseuid 42A39F29037C */ private SpringServiceFactory() { } /** * 返回唯一实例.如果是第一次调用此方法,则创建实例 * @param wac * @return * ASM-S设计模型.M03工程管理.M03_PU01工程管理.02Control.Business.EngineServiceFacto * ry) * @roseuid 42A39F29037A */ public static SpringServiceFactory getInstance() { if (instance == null) { syncInit(); } return instance; } /** * @return Void * @roseuid 42A39F29037D */ private static synchronized void syncInit() { if (instance == null) { instance = new SpringServiceFactory(); } } /** * 方法编号: * 方法名称: getServiceObject * 内容摘要: 通过beanID获取具体的服务类 * * @param beanID * @return Object * @roseuid 42A39F29038A */ public Object getServiceObject(String beanID) { //Object service =null; // service = services.get(beanID); // if (null == service) // { // //如果所需要的当前服务类不存在,则创建该服务类 // service = createServiceObject(beanID); // services.put(beanID, service); // } return createServiceObject(beanID); } /** * 方法编号: * 方法名称: createServiceObject * 内容摘要: 通过传入beanID生成服务类 * * @param beanID * @return Object * @roseuid 42A39F29038C */ public Object createServiceObject(String beanID) { ServletContext servletContext = SystemServletContext.getServletContext(); WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); return wac.getBean(beanID); } }