2

春の ContextConfiguration アノテーションを使用してアプリケーションコンテキストを提供するいくつかのテストがあります (私はそれらを作成しませんでした。私はそれらを維持しています)。

@ContextConfiguration(locations = { "testCustomContext.xml" })
public class MyTest  {
}

とにかく、いくつか質問があります。私は、file:/ または classpath:/ を指定しない春のカスタム コンテキストの場所にあまり詳しくありません。どういう意味ですか?このテスト クラス パスには、その名前のリソースがたくさんあります。それらはすべてロードされていますか?そうでない場合、Spring はどのようにロードするかを判断しますか?

第二に、このように配線されたスプリング コンテキストにプログラムでアクセスする方法はありますか?

つまり、現在のコンテキストにアクセスできる静的な Spring クラスまたは ThreadLocal 変数はありますか?

助けてくれてありがとう。

4

1 に答える 1

1

テストクラス内で自動配線するだけで、アプリケーションコンテキストにアクセスできます。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyTest {

    @Autowired
    private ApplicationContext applicationContext;

    // class body...
}

2番目の質問について:

file:/またはclasspath:/を指定しないSpringカスタムコンテキストの場所についてはあまり詳しくありません。どういう意味ですか?このテストクラスパスには、その名前のリソースがたくさんあります。それらはすべてロードされていますか?そうでない場合、Springはどのようにロードするかを認識しますか?

Javaドキュメントから:

プレーンパス(たとえば、「context.xml」)は、指定されたクラスが定義されているパッケージに相対的なクラスパスリソースとして扱われます。スラッシュで始まるパスは、絶対クラスパスの場所として扱われます(例: "/ org / springframework / whatever / foo.xml")。URLを参照するパス(たとえば、classpath:、file:、http:などのプレフィックスが付いたパス)は、変更されずに結果に追加されます。

ResourcesSpringについては、ドキュメントで学ぶことができます: http ://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/resources.html

また、JavaDocsforは@ContextConfigurationより多くの知識を提供します。

SpringDocsを勉強することをお勧めします。

于 2012-11-19T23:18:50.057 に答える