1

正在从 EJB2.0 进行 Spring 迁移。在现有的 MessageListener 中,我们缓存了一些重量级的对象,因为它在初始阶段使用反射和复杂的操作,例如 JAXB 对象。例如,我们有 100 个作为侦听器的最大大小,因为 EJB 侦听器创建了 100 个对象,我们没有线程安全问题。当我尝试使用 Spring 2.5 时,MDP 使用单个侦听器对象进行多线程处理,因此我们遇到了侦听器类级别对象的问题,我们无法提供线程对象。我正在使用 Spring.aop.target.CommonsPoolTargetSource 和 proxyFactoryBean 来池化重量级实例,但该实例不是线程安全的,它可能会破坏预期。我试图找出这个问题的解决方案,我得到了一些信息,因为我们可以使用类和使用 process() 而我们没有 不想实现监听器类,但我们需要使用 jmscontainer 进行配置,但我们的团队想要一个标准的方法来做到这一点。因为项目可能会增长,它需要遵循框架模式,需要一些标准。

请帮助我在实现 MessageListener 和 onMessage 作为获取消息的方法的类中解决这个线程安全的资源池。但我们需要线程安全资源。过去一天我一直在研究这个问题,但无法弄清楚这个问题。

提前感谢您提出解决此问题的标准方法。

4

0 回答 0