下面的這段代碼是SpringGuide中的一個例子
public class MyServlet extends HttpServlet {
?
? public void doGet(
HttpServletRequest request,?
HttpServletResponse response)
???? throws ServletException, IOException {
?? ……
? }
}
作者把這個Servlet的應用歸為type1型的依賴注入。以前我曾經(jīng)看過這個例子,不過當時沒有怎么理解。
今天,開始仔細的學習的時候,好好的想了一下,覺得稍有理解。
對于一個Servlet來說,可能覺得,在用戶請求到達的時候,其響應就完了,如果簡單的看這個問題,那么就太簡單了。作為我們來說需要知道所以然。
如果單純的是一個類,調用一個方法do(String a,String b),提供兩個參數(shù),那也就正常了。因為你調用這個方法的時候,已經(jīng)實例化了,有可能是你自己實例化的 new Object ().do("a,","b")。
但是你在請求到一個servlet的時候,卻不需要去顯式創(chuàng)建一個servlet的實例,然后再調用其doGet(request,response)方法,因為,你在請求到達之前,先到達容器,讓后再到servlet,在到達servlet之前,并沒有生成對應的request對象和response對象。所以此時,servlet并不知道要做什么。
問題來了,
request從哪來?
response從哪來?
是你封裝的嗎?
其實,此時的請求由容器接收,并封裝和創(chuàng)建對應的request和response對象,然后把傳入到servlet對象里面。
也就是說,在你動態(tài)的請求之前,這個依賴并不存在。
請求之后,容器封裝之后的對象才有了依賴,這是個動態(tài)的依賴。然后才會注入到servlet里面。
這就是為什么是動態(tài)依賴,是依賴注入。
我對依賴的一點粗淺理解。
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://m.tkk7.com/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2007-07-02 11:35
zhyiwww 閱讀(676)
評論(0) 編輯 收藏 所屬分類:
j2ee