クライアントインターフェイスを実装するクライアントを開始することを目的とする messageListener があります。クライアント インターフェイスのさまざまな実装は、コンパイル時にはわかりません。
messageListener は Launcher-bean を使用してクライアントを起動します。したがって、私の問題は、クライアント インターフェイスの選択された実装が注入されたランチャー Bean を構築する必要があることです。これを行う方法がわからない、または問題を別の方法でアプローチする必要がありますか?
public class MyMessageConsumer implements MessageListener {
public void onMessage(Message message) {
String clientType = message.getClientType();
//Here i need to construct a launcher-bean, which has the correct Client-implementation injected
launcher.startClient(message);
}
}
public class Launcher {
@Inject
private Client client;
public void startClient(Message message) {
...
client.start(message);
}
}
編集:トリッキーな部分は正しい実装を見つけていないことに気付きましたが、メッセージの消費を新しいリクエストとして行う必要があることに気付きました。何を求めているのか理解できますか?