public <T> T get(Class<T> type, String name, IocContext context) throws IocException {
if (log.isDebugEnabled())
log.debugf("Get '%s'<%s>", name, type);
// 连接上下文
IocContext cntx;
if (null == context || context == this.context)
cntx = this.context;
else {
if (log.isTraceEnabled())
log.trace("Link contexts");
cntx = new ComboContext(context, this.context);
}
// 创建对象创建时
IocMaking ing = new IocMaking(this, mirrors, cntx, maker, vpms, name);
// 从上下文缓存中获取对象代理
ObjectProxy op = cntx.fetch(name);
// 如果未发现对象
if (null == op) {
// 线程同步
synchronized (this) {
// 再次读取
op = cntx.fetch(name);
// 如果未发现对象
if (null == op) {
try {
if (log.isDebugEnabled())