2

main()メソッドがないにもかかわらず、Eclipse で JUnit テストを実行できます。コードがないにもかかわらず、Ant xml を実行できます。

同じ方法で Spring コンテキストを実行できますか?

spring XML の「runing」で、以下のようなプログラムをすばやく実行するように Eclipse に指示できますか?

public class Runner {
    public static void main(String[] args) {
        new ClassPathXmlApplicationContext("/springtests/test04.xml");
    }
}

アップデート

この質問は快適さについてです。私は春の構成のための多くのテストを書いています。テストごとに、JUnit テストまたは上記のようなランナー クラスを作成しています。したがって、労力を最小限に抑えたいと考えています。Spring 構成で XML ファイルを右クリックして「実行」できるようにするためです。「実行」とは、XML をメモリーにロードして CPU 制御をそれに移すという意味ではありません。

更新 1

OK SpringRunner、次のコードでプロジェクトにクラスを作成しました

public class SpringRunner {
public static void main(String[] args) {
    new FileSystemXmlApplicationContext(args[0]);
}
}

SpringRunner次に、名前とこの呼び出しをメインクラスとして実行/デバッグ構成を作成し、設定します

${resource_loc}

プログラム引数セクションで。

このようにして、数回クリックするだけで任意のスプリング構成を「実行」できます。

1) XML ファイルを右クリック

2) [Run/Debug As...] を選択します。

3) [実行/デバッグ構成...] を選択します。

4) 「SpringRunner」を選択

5) [実行/デバッグ] をクリックします。

問題は、これをさらに短縮できるかどうかです。右クリックして「実行/デバッグ」するとすぐに、このオプションを任意の XML ファイルまたは任意のファイルに表示するように Eclipse に指示する方法は?

4

2 に答える 2

0

いいえ、JUnitでも絶対にできません....JUnitを実行すると、内部的にmainメソッドを持つutilクラスがあり、このメソッドはjunitクラスをリフレクションによって実行します。

覚えておいてください。Java では、main メソッドなしでコードを実行する方法はありません。

class A{
       static{
              System.out.print("where is main");
       }

}

このコードは、クラスが jvm にロードされたときに機能します。これは、上記の言葉の例外かもしれませんが、一般的な答えは NO です。

簡単な質問ですが、なぜ main なしで spring を実行する必要があるのですか? junitがメインメソッドなしで実行されていると考える場合(実際にはあります)、tomcatのようなアプリコンテナを使用すると、メインメソッドを宣言する必要はありません。コード、スプリング、または必要なものを実行します。

于 2012-10-13T18:31:50.550 に答える
0

http://static.springsource.org/spring/docs/2.5.x/reference/testing.html#testcontext-frameworkをご覧ください

例えば:

@RunWith(SpringJUnit4ClassRunner.class)
// ApplicationContext will be loaded from "/applicationContext.xml" and "/applicationContext-test.xml"
// in the root of the classpath
@ContextConfiguration(locations={"/applicationContext.xml", "/applicationContext-   test.xml"})
public class MyTest {
// class body...

}

私が助けてくれることを願っています...

于 2012-10-13T18:35:35.270 に答える