0

@Autowiredセッターなしで春のアプリケーションに使用し、テストクラスで実行すると、正常に動作します。

ただし、antを使用してクラスをjarにビルドし、このクラス(jar内にある)を呼び出すと、機能しません。を使用してセッターをコーディングし、@Autowiredant を使用して jar を構築し、これを呼び出すと、動作します。

誰が私に違いを説明してもらえますか?

注:-そのjarのantなしでEclipseツールを使用してjarを構築すると、セッターメソッドなしで動作します。

では、なぜこれが ant で構築された jar でのみ機能しないのか、なぜ ant で構築されたクラス@Autowiredがセッター メソッドでのみ必要なのかを説明してください。

4

1 に答える 1

1

私の推測では、jar ファイルに XML リソースが含まれていない可能性があります。注釈付きの自動配線を機能させるには、Spring XML を指定する必要があります<context:annotation-conig />。Ant jar タスクに、Eclipse プロジェクトのソース ディレクトリと同じディレクトリが含まれていることを確認してください。

2 つのソース ディレクトリを持つ ant jar タスクの例: src/main/java.java ファイルをsrc/main/resources含み、XML およびその他の構成ファイルを含みます。

<jar ...>
  <fileset dir="src/main">
    <include name="java" />
    <include name="resources" />
  </fileset>
</jar>
于 2012-07-14T22:50:08.473 に答える