私のSpringブートアプリケーションでは、Mongoデータベースからエントリを読み込む設定があります。AbstractMongoEventListenerをプログラムで登録するにはどうすればよいですか?
これが実行された後、私のサブクラスAbstractMongoEventListener
は、別のテーブルと異なるスコープで動作していても作成されます(私自身のカスタム@CustomerScope
)。ここで
はリスナーです:
@CustomerScoped
@Component
public class ProjectsRepositoryListener extends AbstractMongoEventListener<Project> {
@Override
public void onAfterSave(Project source, DBObject dbo) {
System.out.println("saved");
}
}
そして、ここでの設定:
@Configuration
public class MyConfig {
@Autowired
private CustomersRepository customers;
@PostConstruct
public void initializeCustomers() {
for (Customer customer : customers.findAll()) {
System.out.println(customer.getName());
}
}
}
私はそれは驚くべきリスナーが全くインスタンス化されることがわかります。特に、顧客リポジトリへの呼び出しが完了した後で、それがうまくインスタンス化されるためです。
これを防ぐ方法はありますか?私は、注釈魔法なしで、テーブル/スコープごとにプログラムで登録することを考えていました。