Java 用于管理具有许多框架且没有文档的复杂项目设置的工具
我们必须扩展一个巨大的java项目,利用maven、spring、struts、freemarker和闭包模板等框架 我们可以访问源代码,但几乎没有任何文档,我们必须扩展这个系统。我们唯一的解决方案是在现有代码中找到一个地方,在那里已经做了类似的事情。为了找到这个位置,我们尝试从调用的操作开始,然后在调试器的帮助下尝试找出涉及哪些类和Springbean 调试器的堆栈跟踪很难理解,因为使用了大量反射Java 用于管理具有许多框架且没有文档的复杂项目设置的工具,java,spring,Java,Spring,我们必须扩展一个巨大的java项目,利用maven、spring、struts、freemarker和闭包模板等框架 我们可以访问源代码,但几乎没有任何文档,我们必须扩展这个系统。我们唯一的解决方案是在现有代码中找到一个地方,在那里已经做了类似的事情。为了找到这个位置,我们尝试从调用的操作开始,然后在调试器的帮助下尝试找出涉及哪些类和Springbean 调试器的堆栈跟踪很难理解,因为使用了大量反射 是否有人有类似的设置,并能提供一些技巧来管理如此复杂的设置?为您的应用程序使用Eclipse I
是否有人有类似的设置,并能提供一些技巧来管理如此复杂的设置?为您的应用程序使用Eclipse IDE。它支持spring、struts和许多j2ee应用程序框架。我喜欢它的调试器,并且很容易理解它的堆栈跟踪。 通常,Eclipse中的调试器配置为在引发异常的位置对所有未捕获的异常暂停执行。该异常可能稍后在堆栈框架的较低位置处理,并且可能不会导致线程终止。这将是观察到的行为的原因。
配置Eclipse的行为非常简单-在“首选项”对话框中,树层次结构中Java下的“调试”窗格中有一个名为“**在未捕获异常时暂停执行”的选项,可以取消选中该选项。从未遇到过这种特定情况,但如果我是你,我会使用AspectJ尝试一些AOP,以便包装应用程序的每个调用,收集这些实时数据并进行分析,以查看操作发生的位置。您可以围绕这些数据构建一些漂亮的热图或其他可视化效果。是的,我有一个类似的设置,我使用过,因为在我的例子中,代码也有缺陷,无法理解。;-)
这工作真的很难。我只能给你们一个提示:构建回归测试我认为尽管手头的任务看起来很难,但几乎没有什么工具可以帮助你们
- 我会使用JavaEEIDE,有很多选项,我推荐eclipse
- 我从struts配置(struts config.xml)开始,我认为这应该对您有所帮助,使用插件打开struts配置,您将可以很好地查看应用程序流
- 安装spring有助于进行spring上下文编辑
- 您需要了解spring容器是如何实例化的,因为它在web.xml中是一个web应用程序,如果我不得不猜测的话,那么您应该找到它的配置,或者可能是
- 因为你在你的帖子里没有提到任何事情,我不确定这封信是不是有问题
- 如果它们不受spring的管理,那么它们可能会使用
- 如果没有测试,我将编写一个测试,至少可以隔离地加载spring容器。如果您使用Junit和spring测试,那么它很简单,请在这里查找
- 如果您可以使用struts插件获得应用程序流,那么您就可以绘制出各种流,这些流应该对您的视图有很大帮助(freemaker)
- 由于您没有对maven所关心的更改进行量化,因此更改应该是最小的,更像是添加新的依赖项等,您可以为maven使用此插件
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring-context.xml"})
public class CTSWebServiceTest
{
//if annotations are being used
@Autowired
ApplicationContext ctx;
}