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();
	}
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 ) { } } } bindCache . clear ( ) ; beanBoxMetaCache . clear ( ) ; singletonCache . clear ( ) ; }
Close current BeanBoxContext, clear singlton cache, call predestory methods
for each singleton if they have