我已经对这个话题进行了大量的研究,但是没有太多的研究,所以这个板子是我唯一的希望。
我在oracle weblogic 11c上运行了一些deplyoments,在部署代码中有一些需要更改的东西,但问题是我不能更改代码我只能使用某种注射最好是javassist。
我可以访问部署代码,我确切地知道需要更改哪一行。什么是最好的方法,javassist中是否有任何语法允许您替换代码中的某一行?
答案 0 :(得分:1)
看看here:
也可以在行号指定的位置插入代码片段(如果行号文件包含在类文件中)。 CtMethod和CtConstructor中的insertAt()获取原始类定义的源文件中的源文本和行号。它编译源文本并将编译后的代码插入行号。
换句话说:您希望使用的框架似乎支持您的要求;其余的只是坐下来进行实验。
关于你的评论:那么你可能不得不咬紧牙关而忘记改变一条线;相反,你按照这些说明操作:
CtMethod和CtConstructor提供了setBody()来代替整个方法体。
含义:框架支持向方法添加内容;或替换整个方法;但不能替换方法体的部分。