【发布时间】:2016-06-02 14:53:14
【问题描述】:
我有带有包布局的 Spring Boot 应用程序示例:
main:
-com.foo
Application.java
-com.foo.services
ItemService.java
ItemRepository.java
-com.foo.config
Configuration.java
test:
-com.foo.services
ItemServiceIngegrationTest.java
我的集成测试无法运行,无法找到 ItemRepository bean 如果放
@ComponentScan(basePackageClasses = { ItemService.class })
但如果我把它工作
@ComponentScan(basePackageClasses = { Application.class })
诀窍在哪里?
规范说:
basePackageClasses() 或 basePackages()(或其别名 value()) 可以指定以定义要扫描的特定包。如果具体 未定义包,扫描将从 声明此注解的类。
@EnableAutoConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { Configuration.class })
public class ItemServiceIntegrationTest {
. . .
}
@org.springframework.context.annotation.Configuration
@PropertySource("classpath:application.properties")
@ComponentScan(basePackageClasses = { ItemService.class })
public class Configuration extends AbstractMongoConfiguration {
. . .
}
【问题讨论】:
标签: java spring spring-java-config spring-mongodb component-scan