繁体   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