类加载执行子系统

一 Tomcat:正统的类加载器架构

  目录结构中有3组目录(“/common/*”,“/server/*”和“/shared/*”)可以存放java类库,加上web应用程序自身的目录“/WEB-INF/*”,一共4组

  放置在/common目录中:类库可悲Tomcat和所有Web应用程序共同使用

  放置在/server目录中:类库可被Tomcat使用,对所有Web应用程序不可见

  放置在/shared目录中:类库可被所有的Web程序共同使用,但对Tomcat自己不可见

  放置在/WebApp/WEB-INF目录中:类库仅仅可以被此Web应用程序使用,对Tomcat和其他Web应用程序都不可见

WebApp类加载器和Jsp类加载器通常会存在多个实例,每个Web应用程序对应一个WebApp类加载器,每个JSP文件对应一个Jsp类加载器

当服务器检测到JSP文件被修改时,会替换掉目前的JasperLoader的实例,并通过再建立一个新的Jsp类加载器来实现Jsp文件的HotSwap功能

二 OSGi:灵活的类加载器架构

  OSGi中的每个模块(称为Bundle)与普通的Java类库差别不大,两者一般都是JAR格式封装,并且内部存储都是Java Package和Class。但是一个Bundle可以声明它依赖的Java Package(通过Import-Package描述),也可以声明它允许到处发布的Java Package(通过Export-Package描述)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值