classLoader设计结构
Tomcat Server在启动的时候将构造一个ClassLoader树,以保证模块的类库是私有的
ClassLoader被组织成树形,一般的工作原理是:
1) 线程需要用到某个类,于是contextClassLoader被请求来载入该类
2) contextClassLoader请求它的父ClassLoader来完成该载入请求
3) 如果父ClassLoader无法载入类,则contextClassLoader试图自己来载入
--未完待续--
Tomcat Server在启动的时候将构造一个ClassLoader树,以保证模块的类库是私有的
ClassLoader被组织成树形,一般的工作原理是:
1) 线程需要用到某个类,于是contextClassLoader被请求来载入该类
2) contextClassLoader请求它的父ClassLoader来完成该载入请求
3) 如果父ClassLoader无法载入类,则contextClassLoader试图自己来载入
--未完待续--
下载apache-tomcat-6.0.2-src我们来分析一下tomcat的部分源码。
查看catalina.sh或者catalina.bat可以发现这一行:org.apache.catalina.startup.Bootstrap “$@” start
由此我们了解到调用Bootstrap来启动系统是tomcat启动的第一步。
下一步我们再来查看一下Bootstrap.java的源码,
A.main()
里面逻辑很清晰也很简单:
1.new一个Bootstrap对象,并调用init()来初始化系统。
2.通过外部传入的参数来决定是start,stop,startd,stopd。
B.init()
main()里面的init()所做的事情:
1.设置CatalinaHome
2.设置CatalinaBase
3.初始化ClassLoaders
4.使用初始化好的classLoader来做一些事情
B.1和B.2都是通过配置文件和当前环境所处绝对路径来设置实际的运行环境。
B.3创建了commonLoader,catalinaLoader,sharedLoader,它们之间的关系是:
commonLoader—->catalinaLoader,commonLoader—->sharedLoader
catalinaLoader与sharedLoader是位于同一层级,并且有共同的parent:commonLoader
B.4主要是调用catalinaLoader中的org.apache.catalina.startup.Catalina来启动系统。

洛杉矶- 一个芳香迷人的夏夜, Larna Hartnack 被她的狗Charlie的叫声吵醒了, 使她恐惧的是, 她的Dalmatian狗正在与涣熊的战斗-一群涣熊正在猛攻她的身体并且几乎咬掉她的尾巴…
Dalmatian:一种斑点狗

http://news.yahoo.com/s/ap/20061118/ap_on_re_us/venice_raccoons
MistyLook has been modified by summer and add some javascript effect.
it can smart adjust content-main size, but in firefox it works worse :(.
Eclipse现在适合从事嵌入式开发的开发者了。
Eclipse DSDP(Device Software Development Platform)项目在本周发布了三个重要的版本:Target Management 1.0, Embedded Rich Client Platform (eRCP, release version 1.0 and Mobile Tools for the Java Platform (MTJ) release version 0.7.
DSDP建立于2005年,它作为Eclipse最高级别的项目致力于为嵌入式软件开发者创建一个开放的标准的开发平台。
TM项目是与创建项目架构和数据模型来帮助管理和配置嵌入式系统间的连接与服务的。TM项目的技术基础是基于IBM远程系统资源管理器的一个开源版本。除IBM之外Symbian, MontaVista 和Wind River这些公司都被列为TM的贡献者的。
…
来源:http://www.internetnews.com/dev-news/article.php/3643801