我应该使用CDI javax.inject.Singleton对于不需要序列化,代理,或装饰豆

问题描述 投票:1回答:1

我了解ApplicationScoped和CDI javax.inject.Singleton工作,我明白the difference between these two scopes。我的应用程序有很多不需要序列化,代理,或装饰豆子,所以我考虑改用那些ApplicationScoped(工作),以javax.inject.Singleton避免代理来提高性能。

我的问题是:我其实应该做出这样的改变?

java singleton cdi java-ee-8
1个回答
0
投票

当然,你可以做范围注释,重构,但你需要照顾系列化的豆类调用这些单管理的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-performance/

© www.soinside.com 2019 - 2024. All rights reserved.