关于ASM和webAppClassLoader的疑惑

自己重写findClassInternal()之后,用自己的方式来加载类,这个时候所有的类(包括第三方JAR和自己项目的类)应该是存在JVM PERMGEN里面了。然后在spring的simleMetadataReader,spring会用asm 来重新从文件流里来访问一些类(比如,注解的类),然后如果有注解的话,会创建instance到heap中。



--------


我的疑问就是:前面tomcat已经把类加载到JVM中了, 这个时候srping再从文件流里访问类,这样反复的操作文件,性能不太好吧?为什么不直接从JVM里读类?

xwork2.util.finder.ClassFinder.readClassDef()也是一样的。这个方法的作用却不太懂了。。。(貌似是用来寻找struts2注解的?)

springframework.core.LocalVariableTableParameterNameDiscoverer.inspectClass(..)也是。





UPDATE:第一个疑问,应该是不同CLASSLOADER加载的类是互相不认识的

猜你喜欢

转载自cainiao1923.iteye.com/blog/1773269