我了解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
提交
取消