用于管理具有许多框架且没有文档的复杂项目设置的工具

时间:2011-10-13 14:35:29

标签: java spring

我们必须扩展一个巨大的java项目,它使用maven,spring,struts,freemarker和closure模板等框架。

我们确实可以访问源代码,但几乎没有任何文档,我们必须扩展此系统。我们唯一的解决方案是在现有代码中找到已经完成类似的地方。为了找到这个地方,我们尝试从调用的动作开始,然后在调试器的帮助下尝试找出涉及哪些类和Spring bean。

调试器的堆栈跟踪很难理解,因为正在使用大量的反射。

有没有人有类似的设置,可以提供一些tipps如何管理这么复杂的设置?

4 个答案:

答案 0 :(得分:1)

是的我有类似的设置,我使用fdisk,因为在我的情况下,代码也有错误,不可理解。 ; - )

这份工作真的很难。我只能给你一个提示:建立回归测试

答案 1 :(得分:0)

将Eclipse IDE用于您的应用程序。它支持spring,struts和j2ee应用程序的许多框架。我喜欢它的调试器,我很容易理解它的堆栈跟踪。 通常,Eclipse中的调试器配置为在所有未捕获的异常上挂起引发异常的位置的执行。异常可能稍后处理,在堆栈帧中降低,并且可能不会导致线程被终止。这将是观察到的行为的原因。 配置Eclipse的行为很简单 - 在Preferences对话框中,树层次结构中Java下的Debug窗格有一个标题为“**暂停未捕获异常执行”的选项,可以取消选中。

答案 2 :(得分:0)

从来没有这个具体案例,但是我是你,我会尝试使用AspectJ的一些AOP来包装应用程序的每次调用,收集这些实时数据并分析它以查看操作发生的位置。您可以围绕此类数据构建一些不错的热图或其他可视化。

答案 3 :(得分:0)

我认为虽然手头的任务看起来很难,但很少有工具可以提供帮助

  • 我会使用Java EE ide,有很多选项可以列举一些EclipseNet Beanswebstorm,我建议使用eclipse
  • 我从struts配置(struts-config.xml)开始,我认为这个pulgin可以帮助你,使用插件打开struts配置,你将有一个很好的应用程序流视图
  • 安装弹簧IDE有助于弹出上下文编辑
  • 您需要了解如何实例化spring容器,因为它是web.xml中的web应用程序,如果我必须猜测,那么您应该找到spring context loader listener的配置或DispatchServlet }
  • 由于您在帖子中没有提及任何内容,我不确定s truts actions are being managed by spring是否
  • 如果他们没有被春天管理,那么他们可以使用WebApplicationContextUtils
  • 访问行动类中的春季托管bean
  • 如果没有测试,如果你使用Junit和Spring测试,我会写一个测试,至少要单独加载spring容器这很简单,请看more

     @RunWith(SpringJUnit4ClassRunner.class)
     @ContextConfiguration(locations={"classpath:spring-context.xml"})
     public class CTSWebServiceTest 
     {
          //if annotations are being used
            @Autowired
        ApplicationContext ctx;
     }
    
  • 如果您可以使用struts插件获取应用程序流程,那么您可以绘制出可以帮助您了解视图的各种流程(freemaker)

  • 由于你没有量化变化,因为对于maven来说,更改应该是最小的更像是添加新的依赖项等,你可以使用这个m2eclipse插件来实现maven