我的项目结构如下:
的java / com.company.foo /容器/配置/
此文件夹包含
@ComponentScan({"com.company.foo.module.project",
"com.company.foo.module.user"})
@Configuration
@EnableScheduling
@Import(value = {
SecurityConfiguration.class})
public class ApplicationContextConfiguration {
}
我的ResourcePlannerApplication位于此文件夹中:
的java / com.company.foo /容器/
并有以下注释:
@Import({ApplicationContextConfiguration.class})
@SpringBootApplication
现在我有两个模块项目和用户具有相同的结构:
的java / com.company.foo /模块/用户/刀/
此文件夹包含:
public interface UserRepository extends JpaRepository<UserEntity, Long> {
UserEntity findByUsername(String username);
}
现在,当我启动应用程序时,它告诉我:
考虑在配置中定义'com.company.foo.module.user.dao.UserRepository'类型的bean。
我没有看到问题,因为ComponentScan正在扫描所有文件夹?
答案 0 :(得分:2)
组件扫描不会获取JPA存储库,因为它们只是具体类由Spring Data动态创建的接口,前提是您已在配置中包含@EnableJpaRepositories注释:
overflow:hidden
答案 1 :(得分:0)
Plog的答案是正确的。 我只想补充一点,类似的解决方案也适用于Mongo信息库(我们具有作为信息库的接口)。 假设存储库软件包为:
package com.example.respository;
在spring应用程序代码中启用mongo存储库,如下所示:
@EnableMongoRepositories("com.example.repsoitory")