一个tomcat中可以部署多个应用。而每个应用中都存在很多类,并且各个应用中类是独立的。全类名是可以相同的。比如一个订单系统中可能存在一个用户类。一个库存中也可能存在一个用户类。一个tomcat不管内部部署了多少应用,tomcat启动之后就是一个JAVA进程,也就是一个jvm,所以如果tomcat中只存在一个类加载器。比如默认的AppClassLoader,那么就只能加载一个用户类,这是有问题的,而在tomcat中,会为部署的每个应用都生成一个类加载器,名字叫做webAppClassLoader。这样tomcat中每个应用就可以使用自己的类加载器去加载自己的类,从而达到应用之间的类隔离。不出现冲突。你知道另外tomcat还利用自定义加载器实现了热加载功能。
热加载指的是tomcat监听到类有修改,会去重新建一个webclassloader,当有新的请求过来的时候,会用这个新的wenclassloader去加载这个类。
Tomcat为每个应用创建独特的WebAppClassLoader,实现类隔离,避免命名冲突。此外,它支持热加载,当检测到类修改时,会生成新类加载器,确保更新的类在新请求中被加载,提高开发效率。
5076

被折叠的 条评论
为什么被折叠?



