1

そのため、Spring バッチ プログラム用にカスタムの ApplicationEvent と ApplicationListener をセットアップしていました。ここのセクション 3.13.2の指示に従いました。

これが私が作成したApplicationEventです

import org.springframework.context.ApplicationEvent;

public class DataReaderEvent extends ApplicationEvent {

  private final String progress;
  private final String text;

  public DataReaderEvent(Object source, String progress, String text) {
      super(source);
      this.progress = progress;
      this.text = text;
  }

  public String getProgress() {
      return progress;
  }

  public String getText() {
      return text;
  }

}

そして私の ApplicationListener

import org.springframework.context.ApplicationListener;

public class DataReaderNotifier implements ApplicationListener<DataReaderEvent> {

  private String progress;
  private String text;


  @Override
  public void onApplicationEvent(DataReaderEvent event) {
      this.progress = event.getProgress();
      this.text = event.getText();
  }

  public String getProgress() {
      return progress;
  }

  public String getText() {
      return text;
  }
}  

私が抱えている問題は、ApplicationListener が ApplicationListener < DataReaderEvent > を実行しようとしていると不平を言うことです

「タイプ ApplicationListener はジェネリックではありません。引数 DataEventReader でパラメーター化することはできません」

例にかなり忠実に従っていると思うので、なぜこれが当てはまるのかわかりません。誰かに何かアイデアがあれば、大歓迎です。

4

1 に答える 1

2

プロジェクトに適切な (3.0.x+) バージョンの Spring が含まれていますか? 2.5.x では ApplicationListener は一般的ではなかったと思います。そのため、誤ってその古いバージョンを使用していると、問題が発生する可能性があります。

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/context/ApplicationListener.html

于 2012-04-25T19:11:25.160 に答える