2016-08-02 36 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)})