でオブジェクトを永続化するにはどうすれば以下のアーキテクチャを実装する必要があります。はThreadPoolTaskExecutor
メッセージがキャプチャされたときに、私はこのメッセージに対してほとんど変更を加えず、MongoDBデータベースに永続化する必要があります。
サービスは、このようなものです:今、私はスレッド間Service
オブジェクトを共有する必要が
@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...
}
。
どうすればこのサービスをスレッドセーフにできますか? getInstance()
メソッドファクトリを使用して、Service Objectをシングルトン(Design Pattern)としてRunnabble Beanに挿入するのがよい方法でしょうか?
mongoDbテンプレートにはN個の接続がオープンされている必要がありますか(接続プールの種類)?
スレッド間でこのようなサービスを共有するいくつかの方法がありますか?
まず、私は個人的には、「サービス」はクラスの良い名前だとは思わない。 'save'メソッドを' synchronized'することはできますか? – fiction