在基於maven的ssm項目中,混合使用了<context:annotation-config/>和 @Configuration兩種配置bean的方式,在使用junit做單元測試時,必須同時導入兩種配置(context)
否則會報錯:
java.lang.IllegalStateException: Failed to load ApplicationContext
......
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException NoSuchBeanDefinitionException
@ContextConfiguration內的屬性聲名:
使用locations表明配置文件xml的位置,classes表明JavaConfig的配置類,但因為內部實現原因不可同時使用這兩種方式。
若要正常測試,需要做壹個迂回:
在test下,創建壹個導入xml配置文件的類,並用@Configuration註解
再統壹使用classes包含所有context:
解決方案如上