我的项目中有这样的层次结构:
▼ server
▼ myproject
▼ src
▼ main
▼ java
▼ rest
▼ repository
Ⓘ MyRepository
▶ resources
▼ test
▼ java
▼ rest
Ⓒ MyRepositoryTest
这是MyRepository接口:
public interface MyRepository extends MongoRepository<String, Integer> {
}
这是MyRepositoryTest测试类:
@ExtendWith(SpringExtension.class)
public class MyRepositoryTest {
...
@Autowired MyRepository myRepository;
...
}
测试类中的自动连接myRepository示例出现错误。它显示为Could not autowire. No beans of 'MyRepository' type found
。我搜索了一下并尝试添加@Component
、@Repository
等,但没有任何帮助。如何修复此问题?
4条答案
按热度按时间mwg9r5ms1#
你可以尝试一下,把你的包设置在类
AppConfig
的@ComponentScan
中:sh7euo9m2#
在主类的@SpringBootApplication下是否有@EnableAutoConfiguration?请尝试设置它。
iyfamqjs3#
框架似乎未扫描应用程序中包含测试类的包
从上面共享的层次结构来看,MyRepository接口的包是“rest.repository”,MyRepositoryTest类的包是“rest”。
尝试将MyRepositoryTest类的包也更改为“rest.repository”。这应该可以解决问题。
dwbf0jvd4#
您可以尝试指定应包含在组件扫描中的基本软件包。例如:
注解指出组件扫描应该包括com.example.demo和com.example.model包,这意味着Spring将在这些包中搜索并注册任何Spring管理的组件(如@Controller、@Service和@Repository bean),并使它们可用于依赖注入。