2010-11-08 56 views
2

您知道當更新自己依賴的資源文件(如spring上下文文件)時,Eclipse是否會重新加載自動在Tomcat中運行的類,以便您不必重新啓動Tomcat?如何創建一個依賴資源文件的類,以便Eclipse在資源文件更改時重新發布它? Eclipse會在更新其依賴資源文件時重新發布Spring類,但不會重新發布。在春天從屬資源更改時重新加載類

回答

2

你說:

如果您正在尋找這種行爲的發展,看看JRebel的?你的意思是你想要更新應用程序上下文中的bean的內容嗎?如果是這樣,那麼你可以做的是以下幾點:

1)編寫一個文件系統監視器來監視資源(s)的變化。有一個例子on google code

2)當文件/資源​​發生變化時,讓文件系統監視器觸發一個自定義的Spring ApplicationEvent,如果需要的話爲該事件提供該資源的信息。即文件名稱,上次修改時間,上次修改時間等。

3)讓您要更新的Bean實現ApplicationEventListener並在捕獲文件系統監視器事件時重新加載資源。

4

我不確定是否Spring是爲你做的。你正在像Eclipse或Netbeans這樣的IDE中開發嗎?可能發生的情況是,當您更改代碼時,您的IDE正在「發佈」(即重新部署)您的應用程序代碼,所以每次IDE發佈應用程序時都會重新初始化,讓人產生幻覺,認爲Spring正在重新加載上下文文件更改。

這對於一個小應用很有用,但是讓你的應用獲得的體積越大就越煩人。要再版類 http://www.zeroturnaround.com/jrebel/

+0

是。我正在使用Eclipse。我感到困惑的是,當Eclipse的依賴資源文件更新時,Eclipse會重新發布Spring的核心類,但不會重新發布我的自定義類。 – 2010-11-08 21:29:57

1

一個簡單但可行的解決方法是將螞蟻生成器添加到您的項目中。採取的步驟:

  1. 閱讀文章 這裏 http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.user/gettingStarted/qs-93_project_builder.htm
  2. 創建一個簡單的Ant文件,該 包含一個目標,這touches (只是改變 修改的日期)的依賴類, 但沒有別的(如果你需要幫助,請告訴我)。 Eclipse會在腳本中爲你提供變量。您可以使用任務輕鬆打印它們。您將在控制檯中看到該列表。在性能
  3. 該項目右鍵,並 按性質
  4. 開放的「建設者」選項卡作爲一個建設者添加您的Ant腳本來 項目
  5. 限制的資源集合這 螞蟻建造者呼籲。這可以在nt構建器選項的「構建選項」選項卡中完成。這樣,你的 項目將快速,和螞蟻 腳本將只對屬性文件
  6. 的變化 設定集(取決於屬性的類)資源的運行「刷新」運行Ant腳本之後刷新標籤
  7. 設置您的ant腳本目標,以在「目標」選項卡中調用「自動構建」。其他人喜歡之前和之後清理和手動構建應爲空
  8. 如果需要,您可以將ant腳本的日誌重定向到文件。否則,它將打開控制檯視圖。
  9. 移動你的建設者將在製造商列表中的第一個,因爲它必須Java的建設者

這是一個解決辦法之前運行,應該工作。它不會產生任何不良影響,因爲如果ant腳本在您的項目中,java文件的內容不會改變,並且不會影響版本控制系統,並且整個工作區都是獨立於工作區的。