我有以下问题:
- 我正在编写代码,并想在无法更改其源的包中使用 java bean。
- 这个包在给定的 java bean 上有一个错误。在我的情况下,解决方案是删除这个字段(如果我有源)+重新编译。
- 我想在我的源代码中编写相同的包 + 类(因为我没有 jar 的源代码),没有有问题的字段。
- 实际情况要复杂一些。
在开始实施之前,我想与您协商什么是最好的方法。
我有以下问题:
在开始实施之前,我想与您协商什么是最好的方法。
你现在有Spring Aspects吗?您可以尝试配置一个切入点来拦截您的方法调用,并使用“周围建议”来调用您自己的代码并避免使用原始的 . 更多信息:http ://static.springsource.org/spring/docs/3.1.1.RELEASE/spring-framework-reference/html/aop.html
我想你很可能在这里寻找适配器设计模式。但是请记住,使用此模式您不会更改/修改原始类,而是您自己的继承类(尽管在同一个包中)。
如何对原始源代码进行逆向工程,编写自己的 bean 并将其添加到 jar 中?当然,如果 jar 的许可证没有禁止这种方法。
它相对简单,现代逆向工程工具为您提供可读的源代码。
有很多工具可以对编译的类进行逆向工程。我最近使用了一个作为 Eclipse 插件。
最好的方法是使用相同的包结构和设置类路径顺序重写相同的 java bean,以便首先引用用户定义的代码而不是 jar 文件
您无法真正更改 jar 中的现有源代码(也许我在这里错了,但现在没有办法)。您可以做的是处理类加载级别和面向方面的方法(如字节码操作)。有了它,您可以在加载时更改类、方法等的源代码。但我不会真的推荐它,它只是如果你真的想要它,那么它可能是一种可能性。