2011-10-12 82 views
3

我有一个Java servlet网站,但并未使用任何框架,如Spring或甚至Struts!它确实有休眠,它沿着常规的SQL使用。它也没有单元测试。它使用cvs和ant。服务器只能在JSP中运行Java 1.4。更新旧版Java

除此之外,代码结构相当完善。

是否有很好的方法在代码中添加更多现代功能,同时最大限度地降低风险?看起来我们可以在新代码上添加一些弹簧功能。也许可以用Subversion和Maven替换cvs和Ant,或者其他的东西。

是否有可能在Spring MVC或JRuby on Rails中运行网站的新部分?

+0

噢,持续集成等实践呢?有没有一个好的方法来开始呢? – Joe

+0

当然,请看看[Jenkins](http://jenkins-ci.org/)。除了它的wiki被关闭了一会儿:)这是一个非常好的支持和灵活的CI。你可以下载['詹金斯:权威指南'](http://www.wakaleo.com/download-ci-with-hudson)PDF书,同时,詹金斯维基应该醒来:) – tolitius

回答

4
  • 代码是相当良好的结构

如果是这样的话,我会通过编写一些测试,确保目前的行为/业务保持不变启动,而你继续和介绍春天在混合。

  • 是否可以对某事如Spring MVC,甚至JRuby的运行网站的新部件on Rails的

一切都是可能的,但因为代码已经是Java和作为你指出“结构良好”,我会和Spring一起去。

最容易开始的地方是弄清楚什么取决于什么,以便开始这个“网站”。一旦你的,你就已经有了不同的组件(在纸上+代码),您可以使用Spring的“启动器”应用程序上下文起草,您可以用web.xml负载:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath:META-INF/spring/starter-application-context.xml /WEB-INF/spring/transportes-webflow.xml ... </param-value> 
</context-param> 

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

也就是说之前,您使用任何Spring MVC功能。一旦你有了,看看你是否可以为这个项目定义一个域模型。然后,您可以开始将Servlet转换为Spring MVC控制器和模型(这些域)。

随着您每次移动一个步骤,请运行这些测试,以确保行为仍然稳定。这些可以是简单的JUnit测试,以及可以确保“网站”流程仍然完好无损的Selenium测试。

  • 它使用CVS和蚂蚁

我会推荐给你的构建结构切换到摇篮,它确实需要一点或学习曲线环绕在访问一切你的头建立脚本(这是一件好事),但它真的回报。对于CVS,我更喜欢git,但是如果你对SVN感觉很强烈,你也可以切换到这个。在我看来,git成为了版本控制系统的标准,就像Spring到Java的开发一样。

  • 它确实有它休眠,它沿侧常规的SQL

使用不解的是使用regular SQL的原因。如果这些都是性能方面的原因,那么您可以使用存储过程(您可以在Spring中使用)。另请参阅使用Hibernate的原因,因为它可能带来额外的复杂性,您可能不需要,并且使用简单的Spring JdbcTemplate会更好。

+0

感谢你的伟大和非常完整的答案! – Joe

+0

+ 1这是慷慨的投票,使这样的详细答案成为可能。 – RHT

0

@tolitius覆盖了所有的基础,除了我会建议您在开始任何这些更改之前首先添加Selenium测试以覆盖所有主要的使用案例。这将使在短迭代周期中添加改进变得更加容易。

0

为什么你需要做这些建议的事情?如果纯粹是为了流行并使用更新的框架,那么我会推荐它。

我认为一个好的开始是在当前代码库下编写单元测试,以帮助将未来更改的风险降至最低。另外,假设项目结构不太复杂,迁移到SVN不应该太困难,并且不应该要求更改任何源代码。