我是分模塊開(kāi)發(fā)的,模塊之間相互依賴,在使用Junit4測(cè)試Service層的時(shí)候發(fā)現(xiàn)無(wú)法自動(dòng)注入bean
具體代碼如下
首先定義了一個(gè)父類BaseServiceTest
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-config/spring-context.xml")
public class BaseServiceTest {
}
里面什么也沒(méi)有,但是繼承父類就不用重復(fù)寫
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-config/spring-context.xml")
這兩句了
子類如下
public class BurningChartSpiderTest extends BaseServiceTest {
@Autowired
BurningChartSpider burningChartSpider;
@Test
public void startSpider() {
burningChartSpider.startSpider();
}
}
但是@Autowired總是報(bào)錯(cuò),提示找不到bean,發(fā)現(xiàn)是自己,沒(méi)導(dǎo)入spring的配置文件
但是寫@ContextConfiguration(locations = "classpath:spring-config/spring-context.xml")居然沒(méi)有報(bào)錯(cuò),因?yàn)镾ervice模塊依賴了dao模塊,dao模塊中的spring配置文件是存在的,不過(guò)只掃描dao模塊的包。
Service模塊添加spring配置文件就可以,記得掃描Service模塊,或者dao模塊的配置文件添加掃描Service層也可以。
粗心真的是浪費(fèi)時(shí)間,越是細(xì)枝末節(jié)越要做好。加油!