snaker-core/src/main/java/org/snaker/engine/core/SnakerEngineImpl.java
public SnakerEngine configure(Configuration config) {
		this.configuration = config;
		processService = ServiceContext.find(IProcessService.class);
		queryService = ServiceContext.find(IQueryService.class);
		orderService = ServiceContext.find(IOrderService.class);
		taskService = ServiceContext.find(ITaskService.class);
		managerService = ServiceContext.find(IManagerService.class);
		
		/*
		 * 无spring环境，DBAccess的实现类通过服务上下文获取
		 */
		if(!this.configuration.isCMB()) {
			DBAccess access = ServiceContext.find(DBAccess.class);
			AssertHelper.notNull(access);
			TransactionInterceptor interceptor = ServiceContext.find(TransactionInterceptor.class);
			//如果初始化配置时提供了访问对象，就对DBAccess进行初始化
			Object accessObject = this.configuration.getAccessDBObject();
			if(accessObject != null) {
				if(interceptor != null) {
					interceptor.initialize(accessObject);
				}
				access.initialize(accessObject);
			}
			setDBAccess(access);
            access.runScript();
		}
		CacheManager cacheManager = ServiceContext.find(CacheManager.class);
		if(cacheManager == null) {
			//默认使用内存缓存管理器
			cacheManager = new MemoryCacheManager();
		}
		List<CacheManagerAware> cacheServices = ServiceContext.findList(CacheManagerAware.class);
		for(CacheManagerAware cacheService : cacheServices) {
			cacheService.setCacheManager(cacheManager);
		}
		return this;
	}
public SnakerEngine configure(Configuration config) {
		this.configuration = config;
		processService = ServiceContext.find(IProcessService.class);
		queryService = ServiceContext.find(IQueryService.class);
		orderService = ServiceContext.find(IOrderService.class);
		taskService = ServiceContext.find(ITaskService.class);
		managerService = ServiceContext.find(IManagerService.class);
		
		/*
		 * 无spring环境，DBAccess的实现类通过服务上下文获取
		 */
		if(!this.configuration.isCMB()) {
			DBAccess access = ServiceContext.find(DBAccess.class);
			AssertHelper.notNull(access);
			TransactionInterceptor interceptor = ServiceContext.find(TransactionInterceptor.class);
			//如果初始化配置时提供了访问对象，就对DBAccess进行初始化
			Object accessObject = this.configuration.getAccessDBObject();
			if(accessObject != null) {
				if(interceptor != null) {
					interceptor.initialize(accessObject);
				}
				access.initialize(accessObject);
			}
			setDBAccess(access);
            access.runScript();
		}
		CacheManager cacheManager = ServiceContext.find(CacheManager.class);
		if(cacheManager == null) {
			//默认使用内存缓存管理器
			cacheManager = new MemoryCacheManager();
		}
		List<CacheManagerAware> cacheServices = ServiceContext.findList(CacheManagerAware.class);
		for(CacheManagerAware cacheService : cacheServices) {
			cacheService.setCacheManager(cacheManager);
		}
		return this;
	}
public SnakerEngine configure ( Configuration config ) { this . configuration = config ; processService = ServiceContext . find ( IProcessService . class ) ; queryService = ServiceContext . find ( IQueryService . class ) ; orderService = ServiceContext . find ( IOrderService . class ) ; taskService = ServiceContext . find ( ITaskService . class ) ; managerService = ServiceContext . find ( IManagerService . class ) ; /*
		 * 无spring环境，DBAccess的实现类通过服务上下文获取
		 */ if ( ! this . configuration . isCMB ( ) ) { DBAccess access = ServiceContext . find ( DBAccess . class ) ; AssertHelper . notNull ( access ) ; TransactionInterceptor interceptor = ServiceContext . find ( TransactionInterceptor . class ) ; //如果初始化配置时提供了访问对象，就对DBAccess进行初始化 Object accessObject = this . configuration . getAccessDBObject ( ) ; if ( accessObject != null ) { if ( interceptor != null ) { interceptor . initialize ( accessObject ) ; } access . initialize ( accessObject ) ; } setDBAccess ( access ) ; access . runScript ( ) ; } CacheManager cacheManager = ServiceContext . find ( CacheManager . class ) ; if ( cacheManager == null ) { //默认使用内存缓存管理器 cacheManager = new MemoryCacheManager ( ) ; } List < CacheManagerAware > cacheServices = ServiceContext . findList ( CacheManagerAware . class ) ; for ( CacheManagerAware cacheService : cacheServices ) { cacheService . setCacheManager ( cacheManager ) ; } return this ; }
根据serviceContext上下文，查找processService、orderService、taskService服务
根据serviceContext上下文，查找processService、orderService、taskService服务