2016-08-02 307 views
0

我有以下代碼:@ComponentScan將不起作用

豆的執行情況:

package my.persist.services; 
@Component 
public class MyService{ 
} 

測試:

package my.persist.services; 
@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes={"other configuration classes", my.persist.services.MyService.class}) 
@ComponentScan(basePackageClasses = {my.persist.services.DummyPlaceHolder.class}) 
public class MyServiceTest extends AbstractJUnit4SpringContextTests { 
     @Autowired 
     MyService service; 
} 

當我刪除「my.persist.services。我的服務類「從@ContextConfiguration,編譯器說:」不能自動裝配,沒有找到...的豆「,它似乎是@ComponentScan有沒有影響?任何幫助?

回答

0

而不是單個類的組件掃描,你的基礎包的通配符掃描工作嗎?

@ComponentScan(basePackages = {"my.persist.services.*"}) 

您可以排除在您的測試,即某幾個,如果你想篩選出你真正的實現在您的測試,你可以做到以下幾點:

@ComponentScan(basePackages = {"my.persist.services.*"}, excludeFilters={ 
      @ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value=MyService.class)})