Struts2依賴注入關聯的類

2021-09-01 19:59:47 字數 2443 閱讀 7028

// containerimpl  中定義的靜態內部類

/**

* injects a field or method in a given object.

*/inte***ce injector extends serializable

static class missingdependencyexception extends exception

}

// 一些injector 的實現類

static class fieldinjector implements injector 

//不使用建構函式不知道為何了?????

this.externalcontext = externalcontext.newinstance(field, key, container);

}// 此處是核心關鍵呼叫的方法

public void inject(internalcontext context, object o) catch (illegalacces***ception e) finally

}}

static class parameterinjector

//member 反映有關單個成員(欄位或方法)或構造方法的標識資訊。

t inject(member member, internalcontext context) finally

}}

static class constructorinjector catch (missingdependencyexception e) 

injectors = container.injectors.get(implementation);

}//內部類中提供的方法

@suppresswarnings("unchecked")

private constructorfindconstructorin(clas******mentation)

found = constructor;}}

if (found != null)

// if no annotated constructor is found, look for a no-arg constructor

// instead.

try catch (nosuchmethodexception e)

}/**

* construct an instance. returns instead of

* because it may return a proxy.

*/object construct(internalcontext context, class<? super t> expectedtype)

// if we're re-entering this factory while injecting fields or methods,

// return the same instance. this prevents infinite loops.

t t = constructioncontext.getcurrentreference();

if (t != null)

try finally

// store reference. if an injector re-enters this factory, they'll

// get the same reference.

constructioncontext.setcurrentreference(t);

// inject fields and methods.

for (injector injector : injectors)

return t;

} catch (instantiationexception e) catch (illegalacces***ception e) catch (invocationtargetexception e) finally

}}

// container介面實現類中需要 重要的變數定義和方法定義

threadlocallocalcontext = new threadlocal() 

};/**

* looks up thread local context. creates (and removes) a new context if

* necessary.

*/t callincontext(contextualcallablecallable) finally

} else

} // 注意此處的介面定義

inte***ce contextualcallable

Struts2對依賴注入的支援

依賴注入 dependency injection 還有乙個名字,即控制反轉 inversion of control ioc 什麼是控制反轉?控制反轉就是由容器控制物件之間的關係,而非傳統實現中,由程式 直接操控。控制權由應用程式轉移到了外部容器,這種控制權的轉移,即所謂反轉 什麼是依賴注入?依賴...

Struts2 為Action的屬性注入值

在struts2中提供了依賴注入的功能 在ridirectaction重定向至某一action配置中 action名稱 命名空間 當把result型別宣告為redirectaction的時候,如果若重定向到其他命名空間下action的時候,我們需要使用param配置節點,為 這個型別所對應的這個類中...

struts2學習筆記 struts2的配置檔案

一 struts.xml定義bean的作用 1.建立該bean的例項,將該例項作為struts2框架的核心元件使用。2.bean包含的靜態方法需要乙個值注入。很方便地允許不建立某個類的例項,卻可以接受框架常量。通常需要設定static true 通常,當指定了type屬性時,該屬性不應該制定為tru...