我了解ApplicationScopedCDI的javax.inject.Singleton工作原理,也了解這兩個范圍之間的區別。我的應用程序有很多不需要序列化、代理或裝飾的 bean,所以我正在考慮將它們從ApplicationScoped(有效)切換javax.inject.Singleton到通過避免代理來提高性能。我的問題是:我真的應該做出這樣的改變嗎?
1 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
當然,您可以對范圍注釋進行重構,但您需要處理調用那些單例托管 bean 的 bean 的序列化。請參閱http://docs.jboss.org/weld/reference/latest-2.2/en-US/html_single/#_the_singleton_pseudo_scope
我將首先調查我將從這一舉措中獲得多少性能提升,以及是否真的值得花時間進行投資。通常性能瓶頸來自數據庫查詢/索引性能、I/O、網絡、線程鎖、Java 代理開銷之前的低效算法(等等),所以我會堅持使用標準的@ApplicationScoped。
見: http: //ordinaryjava.blogspot.com/2008/08/benchmarking-cost-of-dynamic-proxies.html https://spring.io/blog/2007/07/19/debunking-myths-proxies-impact -表現/
添加回答
舉報
0/150
提交
取消