djm*_*jmj 8 jsf singleton managed-bean
使用单例类和应用程序范围的托管bean来保存应用程序数据有区别吗?
我需要查找某些JNDI资源,例如远程bean接口,因此我自己写了一个单例来缓存我的引用,只允许单引用.(服务定位)
我在两个不同的浏览器中打开了我的网站,而且这个单例只被初始化了一次.所以我假设它的应用范围?
应用程序范围托管bean的任何其他好处,然后能够访问其在jsf中的属性?
单例不可单元测试,不可抽象或不可扩展。如果您的唯一目的是拥有应用程序范围的数据(至少,如果出于某种原因您真的想要一个完全有价值的单例),那么单例的可靠创建和维护也将不必要地复杂(多数情况下,初学者甚至无法完全理解单例的含义)成为)。
像应用程序范围的受管bean一样,“仅创建一个”就更易于开发,测试和维护。作为框架的JSF将保证在Web应用程序的生存期内仅创建和重用一个实例。