在Spring中创建对象池
我有一个类,
class ObjPool { MyObject getObject() {...} void returnObject() {...} int getUsedCount() {...} }
我们如何使用 Spring 框架,以便它只向所有(Web)应用程序提供该工厂的一个副本,以便每个应用程序都使用相同的 ObjPool?
我的意思是,如果应用程序 A 从此 ObjPool 获取一个对象,那么调用 getUsedCount() 的所有其他应用程序都会看到该值递减。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Spring 中,默认情况下每个 bean 都是单例,这意味着 - 每个 ApplicationContext 有一个 bean 实例。这不是每个容器一个,而是每个 Web 应用程序一个。
http://blog.springsource.com/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/ 给出了一个例子如何在 EAR 级别加载 ApplicationContext 并在所有战争中共享。
In Spring each bean is a singleton by default, which means - one instance of the bean per ApplicationContext. This is NOT one per container, but one per web application.
http://blog.springsource.com/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/ gives an example of how to load an ApplicationContext at the EAR level and share across all wars.
你可以只谷歌搜索“spring导出到jndi”
http://maestro-lab.blogspot.com/2009/01/how-to-export-spring-management-bean-to.html
org.springframework.jndi.JndiTemplate 是一个很好的模板开始的地方
You could just google for "spring export to jndi"
http://maestro-lab.blogspot.com/2009/01/how-to-export-spring-managed-bean-to.html
org.springframework.jndi.JndiTemplate is a good place to start