docs: public void close() {
  		for (Entry<Object, Object> singletons : singletonCache.entrySet()) {
  			Object key = singletons.getKey();
  			Object obj = singletons.getValue();
  			if (key instanceof BeanBox) {
  				BeanBox box = (BeanBox) key;
  				if (box.getPreDestroy() != null)
  					try {
  						box.getPreDestroy().invoke(obj);
  					} catch (Exception e) {
  						// Eat it here, but usually need log it
  					}
  			}
  		}
  		bindCache.clear();
  		beanBoxMetaCache.clear();
  		singletonCache.clear();
  	}