TomCat中为什么要使用自定义类加载器?
一个TomCat中可以部署多个应用,而每个应用中都存在很多类,并且每个应用中的类是独立存在的,全类名是可以相同的,比如一个订单系统中可能存在名为class的类,而库存系统也存在class类,一个TomCat,不管内部多少应用,一旦启动就是一个Java进程,那么也就是一个JVM,所以如果TomCat只存在一个类加载器,比如默认的APPCLASSLOADER,那么就只能加载一个类,这是有问题的,而在TomCat中,会为每个应用部署一个类加载器实例,名字叫做WebAppClassLoader,这样TomCat中每个应用就可以使用自己的类加载器去加载自己的类,从而达到应用之间的类隔离,不出现冲突,另外TomCat还可以使用自定义类加载器实现热加载功能。