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.blogjava.net/zhyiwww   
|----------------------------------------------------------------------------------------|
posted on 2007-07-02 11:35 zhyiwww 阅读(667) 评论(0)  编辑  收藏 所属分类: j2ee

只有注册用户登录后才能发表评论。


网站导航: