Java源码示例:com.jeesuite.mybatis.core.InterceptorHandler

示例1
private void setInterceptorHandlers(String[] hanlderNames) {
	for (String name : hanlderNames) {
		if(org.apache.commons.lang3.StringUtils.isBlank(name))continue;
		if(CacheHandler.NAME.equals(name)){
			this.interceptorHandlers.add(new CacheHandler());
			cacheEnabled = true;
		}else if(RwRouteHandler.NAME.equals(name)){
			this.interceptorHandlers.add(new RwRouteHandler());
			rwRouteEnabled = true;
		}else if(PaginationHandler.NAME.equals(name)){
			this.interceptorHandlers.add(new PaginationHandler());
		}else{
			//自定义的拦截器
			try {
				Class<?> clazz = Class.forName(name);
				InterceptorHandler handler = (InterceptorHandler) clazz.newInstance();
				this.interceptorHandlers.add(handler);
				logger.info("registered cumstom InterceptorHandler:{}",name);
			} catch (Exception e) {
				logger.error("registered cumstom InterceptorHandler error",e);
			}
		}
	}
	//排序
	Collections.sort(this.interceptorHandlers, new Comparator<InterceptorHandler>() {
		@Override
		public int compare(InterceptorHandler o1, InterceptorHandler o2) {
			return Integer.compare(o1.interceptorOrder(), o2.interceptorOrder());
		}
	});
	
}
 
示例2
public void afterRegister()  {
	Iterator<InterceptorHandler> it = interceptorHandlers.iterator();
	while(it.hasNext()){
		InterceptorHandler handler = it.next();
		handler.start(this);
	}
}
 
示例3
@Override
public void destroy() throws Exception {
	for (InterceptorHandler handler : interceptorHandlers) {
		handler.close();
	}
}