Closed inthirties closed 9 years ago
版本是3.1.0.
其中 com.jfinal.ext.kit.ClassSearcher Line 38 Class<?> classInFile = Reflect.on(classFile).get(); 这里on方法里会调用forName 该方法将会执行static代码块,而我做Annotation时,不希望static执行,而是实例化时执行。
2 关于其中的search方法 Line 167 List classFileList = findFiles(classpath, "*.class"); 这里,有比较严重的hardcode 代码 Line 80处 classname = tem.substring(tem.indexOf("/classes") + "/classes".length() + 1, tem.indexOf(".class")); 如果目录中不幸含有classes,或者是 目录本身不包括/classes的话,这两种可能性在WEB项目里有可能性,但是在unit test里是可能性很大的。
line 168 classFileList.addAll(findjarFiles(libDir, includeJars));
private String libDir = PathKit.getWebRootPath() + File.separator + "WEB-INF" + File.separator + "lib"; 这里是针对web项目的, 而且对于一些embed的容器, libs是直接可能是直接在classpath里指定的。 就会出现问题
1 java的static代码块会在class初始化而不是类实例化执行,所以这个情况避免不了 2 libDir目前是可以设置的,关于hardcode部分的代码历史有点久了,可能需要再改善一下了..
2月2日更新3.1.3版本,请用最新版本classpath和lib均可配置
版本是3.1.0.
其中 com.jfinal.ext.kit.ClassSearcher Line 38 Class<?> classInFile = Reflect.on(classFile).get(); 这里on方法里会调用forName 该方法将会执行static代码块,而我做Annotation时,不希望static执行,而是实例化时执行。
2 关于其中的search方法 Line 167 List classFileList = findFiles(classpath, "*.class"); 这里,有比较严重的hardcode 代码 Line 80处 classname = tem.substring(tem.indexOf("/classes") + "/classes".length() + 1, tem.indexOf(".class")); 如果目录中不幸含有classes,或者是 目录本身不包括/classes的话,这两种可能性在WEB项目里有可能性,但是在unit test里是可能性很大的。
line 168 classFileList.addAll(findjarFiles(libDir, includeJars));
private String libDir = PathKit.getWebRootPath() + File.separator + "WEB-INF" + File.separator + "lib"; 这里是针对web项目的, 而且对于一些embed的容器, libs是直接可能是直接在classpath里指定的。 就会出现问题