2011-10-12 81 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不應該太困難,並且不應該要求更改任何源代碼。