簡體   English   中英

對於不需要序列化,代理或修飾的bean,我應該使用CDI javax.inject.Singleton嗎?

[英]Should I Use CDI javax.inject.Singleton for the beans that dont need serialization, proxies, or decorations

我了解ApplicationScoped和CDI javax.inject.Singleton工作方式,並且了解這兩個范圍之間的區別 我的應用程序有很多不需要序列化,代理或修飾的bean,因此我正在考慮將其從ApplicationScoped (有效)切換到javax.inject.Singleton以通過避免代理來提高性能。

我的問題是 :實際上我是否應該進行此類更改?

當然,您可以在范圍注釋上進行重構,但是您將需要在調用那些單例托管bean的bean上進行序列化。 參見http://docs.jboss.org/weld/reference/latest-2.2/en-US/html_single/#_the_singleton_pseudo_scope

我將首先研究此舉將帶來多少性能提升,以及是否真的值得我花時間去投資。 通常,性能瓶頸來自於Java查詢開銷之前的數據庫查詢/索引性能,I / O,網絡,線程鎖,低效算法(以及更多),因此我會堅持使用標准@ApplicationScoped。

參見: http : //ordinaryjava.blogspot.com/2008/08/benchmarking-cost-of-dynamic-proxies.html https://spring.io/blog/2007/07/19/debunking-myths-proxies-impact -性能/

暫無
暫無

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

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