堅持對象我需要實現以下結構:如何ThreadPoolTaskExecutor類
N個線程正在監視BlockedQueue<Message>
(我甚至可以認爲我們可以在不久的將來使用ActiveMQ的)。
當捕獲到消息時,我對這條消息進行了一些修改,我需要將它保存在MongoDB數據庫中。
的服務是這樣的:
@Repository(value="service")
public class Service {
@Autowired
MongoTemplate mongoTemplate;
public void save(Message message){
//do something to message
doSomething(message);
//persist it
mongoTemplate.save(message, "messages");
}
//etc...
}
現在我需要線程之間共享Service
對象。
如何使此服務線程安全?使用getInstance()
方法工廠將服務對象設置爲單例(設計模式)並將其注入到可運行Bean中是否是一種良好的做法?
我的mongoDb模板應該打開N個連接(種類的連接池)嗎?
可能還有其他方法可以在線程之間共享這樣的服務嗎?
首先,我個人認爲'Service'不是一個班的好名字。 你可以讓'save'方法'synchronized'嗎? – fiction 2012-01-03 23:43:46