Spring boot装载模板代码工程中,后续有自定注解的要求,在本地运行无恙,打成jar启动后,自定义注解会无效。
替代方案
在测试compiler.getTask多种参数后,都无果,测试中,发现jdk的注解有效,最后就在jdk中找了一个类似的注解暂时顶上,先让项目最终如期上线。
解决方案及解释
最近,有空了,就回头看看,ClassLoader,双亲委派啊,加载类、并能正常运行的都是通过AppClassLoader加载的,如何让AppClassLoader读取并加载动态编译的class文件流,感觉问题就出在自定的ClassLoader上,如何能够在初始化ClassLoader的时候指定父加载器,翻开ClassLoader的构造方法:文章来源:https://www.toymoban.com/news/detail-504755.html
protected ClassLoader(ClassLoader parent) {
this(checkCreateClassLoader(), parent);
}
做如下改动:
打包,运行,成了!
看来是父加载器无法读取到class的原因!文章来源地址https://www.toymoban.com/news/detail-504755.html
到了这里,关于Spring boot装载模板代码工程实践问题之二的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!