转载地址:http://hi.baidu.com/32647908/blog/item/40854b733fa94b1b8701b08a.html
1:明白什么是容器。
spring首先是一个ioc容器,这个道理不懂,你要看代码,查资料必须要花点时间,你才会明白,哦,spring的ioc容器原来是这样。学习的时候只用spring这一个框架。你如何与web容器的servlet交互,你不可能把servlet也弄成个bean吧。那你的tomcat怎么分析与加载对应的servlet?你的servlet使用bean。然后全部的业务逻辑,和数据库交互都弄成bean让spring来为你管理,为你服务。真的很不错。
其实,spring从解析xml起,就用到了list来存贮对应的bean。用到的技术就是反射!Class.forName();
2:明白什么是web容器
3:理解web服务器的原理。
如果用java编程吃饭,spring似乎是一个无法避免的东西,尽管我们直接拿过来用就是了,但我有点心虚,觉得应该晓得点他的原理比较好,模模糊糊明白ioc和aop是个什么东西,但很少真的见过。这次看spring代码。因为对tomcat原理也是刚入门级的,就在 spring启动和初始化的时候遇到了一个问题,Google了很多,但就是不明白为什么 spring只是在
public class ContextLoaderListener implements ServletContextListener {
private ContextLoader contextLoader;
/**
* Initialize the root web application context.
*/
public void contextInitialized(ServletContextEvent event) {
this.contextLoader = createContextLoader();
this.contextLoader.initWebApplicationContext(event.getServletContext());
}
这里初始化了。
我就有了如下的疑问,
spring从org.springframework.web.context.ContextLoaderListener 启动后,我们的bean为什么完全感觉不到ioc容器的存在,但spring确实为我们注入了bean?因为没配置过滤器,只有这么一个监听器也只是在web容器启动的时候用的,那spring是如何注入这些类的?希望那个兄弟给我讲下
一个网友(网名—上海—爱睡觉),告诉我 这个ioc容器绑定在servletcontext中。一语惊醒梦中人。是不熟悉web容器的原因。一直想一窥tomcat这个开源web容器,但一直由于种种原因没下手,看来现在是到该看下的时候了。