关于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(..)也是。