如何解决 'com.example.test.repository.ConfigRepository' 类型的合格 bean 不可用:预计至少有 1 个符合自动装配条件的 bean
how to solve No qualifying bean of type 'com.example.test.repository.ConfigRepository' available: expected at least 1 bean which qualifies autowire
以下是我的目录结构
- com.example
- com.example.common
- com.example.测试
- com.example.test.repository
我的主 spring boot class 如下
package com.example.test;
@Import({ AutoConfig.class })
@SpringBootApplication
public class testApplication {
public static void main(String[] args) {
SpringApplication.run(testApplication.class, args);
}
}
我的存储库类
package com.example.test.repository.ConfigRepository;
@Repository
public interface ConfigRepository extends MongoRepository<Config, String>, QuerydslPredicateExecutor<Config> {
}
这是我在调试模式下遇到的错误
DEBUG o.s.c.a.ClassPathBeanDefinitionScanner - 被忽略,因为不是具体的顶层 class:文件 [/opt///target/classes/com/example/test/repository/ConfigRepository.class]
AutoConfig class 用于@import 如下
package com.example.common;
@Configuration
@EnableFeignClients
@ComponentScan({ "com.example.common" })
public class AutoConfig {
你的ConfigRepository
class在com.example.test.repository
这个包里
并且在提供 @ComponentScan
时,您正在通过此路径 com.example.common
.
因此,您只是尝试使用下面的 com.example.test
路径。
并且在您的 SpringBootApplication
文件或 Config
文件中,您可以提供 EnableMongoRepositories
并设置 basePackages
属性。
package com.example.test;
@Import({ AutoConfig.class })
@EnableMongoRepositories(basePackages = {"com.example.test.repository"})
@SpringBootApplication
public class testApplication {
public static void main(String[] args) {
SpringApplication.run(testApplication.class, args);
}
}
@Configuration
@EnableFeignClients
@ComponentScan({ "com.example.test" })
public class AutoConfig {
有关 @EnableMongoRepositories
的更多信息,您将从 here 中获得灵感。
这对你有帮助。
以下是我的目录结构
- com.example
- com.example.common
- com.example.测试
- com.example.test.repository
我的主 spring boot class 如下
package com.example.test;
@Import({ AutoConfig.class })
@SpringBootApplication
public class testApplication {
public static void main(String[] args) {
SpringApplication.run(testApplication.class, args);
}
}
我的存储库类
package com.example.test.repository.ConfigRepository;
@Repository
public interface ConfigRepository extends MongoRepository<Config, String>, QuerydslPredicateExecutor<Config> {
}
这是我在调试模式下遇到的错误
DEBUG o.s.c.a.ClassPathBeanDefinitionScanner - 被忽略,因为不是具体的顶层 class:文件 [/opt/
AutoConfig class 用于@import 如下
package com.example.common;
@Configuration
@EnableFeignClients
@ComponentScan({ "com.example.common" })
public class AutoConfig {
你的ConfigRepository
class在com.example.test.repository
这个包里
并且在提供 @ComponentScan
时,您正在通过此路径 com.example.common
.
因此,您只是尝试使用下面的 com.example.test
路径。
并且在您的 SpringBootApplication
文件或 Config
文件中,您可以提供 EnableMongoRepositories
并设置 basePackages
属性。
package com.example.test;
@Import({ AutoConfig.class })
@EnableMongoRepositories(basePackages = {"com.example.test.repository"})
@SpringBootApplication
public class testApplication {
public static void main(String[] args) {
SpringApplication.run(testApplication.class, args);
}
}
@Configuration
@EnableFeignClients
@ComponentScan({ "com.example.test" })
public class AutoConfig {
有关 @EnableMongoRepositories
的更多信息,您将从 here 中获得灵感。
这对你有帮助。