code: public Object visit() {
  		Object o = null;
  		try {
  			TargetMetaRequest targetMetaRequest = targetMetaRequestsHolder.getTargetMetaRequest();
  			StringBuilder sb = new StringBuilder(targetMetaRequest.getTargetMetaDef().getCacheKey());
  			sb.append(targetMetaRequest.getVisitableName());
  			Debug.logVerbose("[JdonFramework] get the optimized instance for the key " + sb.toString(), module);
  			o = componentsboxsInSession.get(sb.toString());
  			if (o == null) {
  				Debug.logVerbose("[JdonFramework] first time visit: " + targetMetaRequest.getTargetMetaDef().getClassName(), module);
  				// com.jdon.container.visitor.ComponentOriginalVisitor#visit
  				o = componentVisitor.visit();
  				if (dynamiceProxyisCached)
  					componentsboxsInSession.add(sb.toString(), o);
  			}
  		} catch (Exception e) {
  			Debug.logError("[JdonFramework]visit error: " + e);
  		}
  		return o;
  	}
docs: the object type saved in componentsboxs is decided by the method"
  visitableFactory.createVisitable. only ejb service need cached, pojo
  service not need.
  
  @param targetMetaDef
  TargetMetaDef
  @return Object