2012-02-01 31 views
1

對不起,如果有一個明顯的答案 - 我是seam新手,並且負責優化應用程序的啓動,它正在掃描幾乎整個應用程序的類路徑,以便使用接縫註釋進行註釋。這大約需要30秒。我們發現,如果我們將所有這些類提取到單獨的JAR中,並將seam.properties放在該JAR中而不是放在我們的WEB-INF/classes中,則掃描佔用了大約50%的時間。有沒有辦法讓Jboss Seam只掃描註釋類的某些包?

儘管這是一個選項,但由於拒絕更改此應用程序的部署結構,因此它不是我們的首選。

那麼......有沒有什麼辦法給SEAM提供可能使其掃描速度更快的軟件包列表?任何其他想法?

謝謝!

回答

1

我不認爲有一個簡單的配置,你可以改變,所以SEAM不掃描整個類路徑。對瓶子的掃描速度更快,因爲如果jar不包含屬性,則不會逐個檢查其中的所有類。由於您擁有SEAM網絡應用程序,因此在啓動時會掃描web-inf中的所有課程。

也許你可以覆蓋Init類中的一些功能,這是我認爲負責掃描應用程序。老實說,我想知道爲什麼你認爲掃描是啓動階段最大的部分。 Hibernate佔用了很多開始時間,只是提到一個例子。我們的Jboss 4.2服務器總共啓動約30秒。但是我們有幾個罐子,沒有直接在web-inf中的類。

同時啓動服務器通常每xx個月執行一次。你使用jboss AS嗎?您可以關閉不必要的模塊,例如提供更高的速度,或者如果您不使用Ejbs,則可以切換到Tomcat,並將啓動時間縮短一半。

+0

最後,我最終定製了jboss-seam(並且打算在我們讓它們烘烤一下之後將更改提交回該項目)。我們面臨的問題是,我們有一個帶有多個WAR的EAR項目來初始化接縫。當每個WAR初始化seam時,它會掃描JAR /文件夾的整個類路徑,其中包含標誌文件(例如seam.properties,當發現時,然後處理整個JAR /文件夾。如果該JAR位於ear/lib文件夾中,你會爲每個WAR初始化接縫而重複這個過程。我的改變是使用一些緩存來排除支付> 1x的成本。 – Scott 2012-02-20 22:46:13

相關問題