zhyiwww
          用平實的筆,記錄編程路上的點點滴滴………
          posts - 536,comments - 394,trackbacks - 0
          下面的這段代碼是SpringGuide中的一個例子
          public class MyServlet extends HttpServlet {
          ?
          ? public void doGet(
          HttpServletRequest request,?
          HttpServletResponse response)
          ???? throws ServletException, IOException {
          ?? ……
          ? }
          }
          作者把這個Servlet的應用歸為type1型的依賴注入。以前我曾經看過這個例子,不過當時沒有怎么理解。
          今天,開始仔細的學習的時候,好好的想了一下,覺得稍有理解。
          對于一個Servlet來說,可能覺得,在用戶請求到達的時候,其響應就完了,如果簡單的看這個問題,那么就太簡單了。作為我們來說需要知道所以然。
          如果單純的是一個類,調用一個方法do(String a,String b),提供兩個參數,那也就正常了。因為你調用這個方法的時候,已經實例化了,有可能是你自己實例化的 new Object ().do("a,","b")。
          但是你在請求到一個servlet的時候,卻不需要去顯式創建一個servlet的實例,然后再調用其doGet(request,response)方法,因為,你在請求到達之前,先到達容器,讓后再到servlet,在到達servlet之前,并沒有生成對應的request對象和response對象。所以此時,servlet并不知道要做什么。
          問題來了,
          request從哪來?
          response從哪來?
          是你封裝的嗎?
          其實,此時的請求由容器接收,并封裝和創建對應的request和response對象,然后把傳入到servlet對象里面。
          也就是說,在你動態的請求之前,這個依賴并不存在。
          請求之后,容器封裝之后的對象才有了依賴,這是個動態的依賴。然后才會注入到servlet里面。

          這就是為什么是動態依賴,是依賴注入。
          我對依賴的一點粗淺理解。




          |----------------------------------------------------------------------------------------|
                                     版權聲明  版權所有 @zhyiwww
                      引用請注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2007-07-02 11:35 zhyiwww 閱讀(678) 評論(0)  編輯  收藏 所屬分類: j2ee
          主站蜘蛛池模板: 文登市| 磐石市| 安康市| 茶陵县| 贵阳市| 临江市| 五家渠市| 田阳县| 民和| 内乡县| 咸阳市| 佛教| 津南区| 阿荣旗| 顺昌县| 南昌市| 阿拉善左旗| 万安县| 桐城市| 邓州市| 兴化市| 安新县| 佛学| 保靖县| 蚌埠市| 宽城| 澄迈县| 当涂县| 德昌县| 莒南县| 东乌| 五原县| 施秉县| 通州市| 威信县| 寻甸| 通榆县| 陆川县| 石屏县| 金昌市| 房产|