簡體   English   中英

使用非彈簧Web應用程序可以實現並行Spring-MVC應用程序嗎?

[英]Is a parallel Spring-MVC application possible with a non-spring web app?

我有一個非常龐大的Tomcat應用程序。 非常適合商業(真錢賺錢)。 但它是遺留的Java代碼。 意思是,JSP(有很多Javascript,Java代碼),Servlets(有幾千行代碼)等等。 我們希望擺脫這個糟糕的代碼。 現在已經有另一個應用程序(不同的目的,不同的功能)的請求。 我們需要在另一個上下文root / NewApp讓我們說在遺留應用程序目錄結構下。 像一個迷你網站。 它將具有不同的URL,甚至可以為幾個虛擬主機提供服務。

我們不想擴展Legacy代碼。 我們希望轉向更好的技術和更好的做事方式。 我們強烈要求Spring(tile,jackson等等)以及它提供的所有東西,包括portlet。 因此,我們正在考慮將DispatcherServlet / ContextLoaderListener / configLocation等引入遺留應用程序web.xml並將彈簧應用程序並排放置的可能性。

主要原因是新應用程序嚴重依賴於遺留服務和庫。

  1. 這種和平共處是否可能?
  2. 我們可能面臨哪些挑戰?
  3. 能否請您指出任何示例配置?

不幸的是,我們無法將它們分開。 感謝您對此的見解。

謝謝!!

我們在不久前經歷了一個類似的用例,同時將適度大的應用程序從EJB 2.1遷移到Spring。 在很長一段時間內,Spring bean與EJB共存。 我們首先在依賴關系層次結構中選擇了葉子,因此Spring bean依賴於EJB而不是相反的方式。 這很漂亮,由於Spring代理和依賴注入,bean像任何其他bean一樣調用EJB。

在同一個應用程序中,我們同時擁有Struts 1和Wicket用於新頁面(該死的,Struts頁面中甚至還有Wicket iframe!),我們甚至將原有的基於JDBC的持久性解決方案與JPA並排。 一切都運作良好。

要記住的事情:

  1. 它仍然是一個應用程序,注意后端緩存

  2. 處理像Spring bean這樣的遺留服務。 構建一些橋/代理/適配器,注入遺留服務,就像注入其他bean一樣。 不依賴於遺留API(我想象一些單身人士,工廠,JNDI查找)

  3. 測試新舊之間的邊界將很難,為很多嘲弄做准備。

  4. 考慮一下Web安全性,您可以輕松地集成兩個“應用程序”嗎?

  5. 讓我們面對現實,你永遠不會完全將舊代碼重寫為新技術。 到那時,新技術也將變得陳舊,新的開發人員將會加入。但是每次都要逐步提高舊代碼的質量。 重構可以創造奇跡!

配置沒什么特別之處。 這是一個誤解,Spring必須統治整個應用程序。 它可以用作輕量級,輕薄的附加組件,與您的應用程序的其余部分相鄰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM