@ContextConfigurationでclasspathでファイル参照先を指定する

spring

springのjunitを動かす際に、spring設定ファイルを@ContextConfigurationを使って読み込ませています。今回は@ContextConfigurationで参照先の指定方法を解説していきます。

[スポンサーリンク]

@ContextConfigurationで読込先の指定方法を理解することによって、共通のspring設定ファイルとイレギュラー的に使用するspring設定ファイルを明示的に分けることが出来ます。

この章でやること

@ContextConfigurationの設定ファイル参照先の指定方法を解説します。

classpath指定した場合の参照先

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:servlet-context-test.xml")
public class ExampleServoceTest {

	@Autowired
	private ExampleServoce service;

	@Test
	public void testService() {
		String ret = service.find("");
		assertEquals("test dao!!", ret);
	}
}

2行目で「classpath」を指定することによって、resources直下の「servlet-context-test.xml」が参照可能となります。

junit-classpath1

classpath指定しない場合の参照先

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="servlet-context-test.xml")
public class ExampleServoceTest {

	@Autowired
	private ExampleServoce service;

	@Test
	public void testService() {
		String ret = service.find("");
		assertEquals("test dao!!", ret);
	}
}

2行目で「classpath」を外すことによって、テストクラスと同じ階層にある「servlet-context-test.xml」が参照可能となります。

junit-classpath2

springMVCのバージョン

org.springframework-versionは、3.1.0を使っています。
javaは、1.6.0を使っています。

最後に

junit用の設定ファイルなので、テストケースによっては一部変更したいなどの場面があると思います。
私は、共通的な設定ファイルは、classpathでresources直下を参照するようにして、イレギュラー的に一部変更させたい場合は、classpathを外すことで対応しています。
classpathを使う方法をおさえておくと便利です。