gpt4 book ai didi

dependency-injection - 依赖注入(inject)在spring boot测试中不起作用,但在正常开发中起作用

转载 作者:行者123 更新时间:2023-12-04 08:22:00 25 4
gpt4 key购买 nike

我开始开发经典的 Spring Boot MVC 应用程序。我使用依赖项注入(inject)(使用 @Service@Autowired 注释)没有任何问题。

当我尝试使用依赖注入(inject)以相同的方式运行一些集成测试时,我从 Junit 收到以下错误消息:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'hu.bookandwalk.RepositoryTests': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hu.bookandwalk.services.UserService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

测试代码的相关部分:

package hu.bookandwalk;

...

import hu.bookandwalk.config.MyNeo4jConfig;
import hu.bookandwalk.domain.*;
import hu.bookandwalk.services.*;

@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
@ContextConfiguration(classes={MyNeo4jConfig.class})
public class RepositoryTests {

@Autowired
Session session;

@Autowired
UserService userService;
...

}

hu.bookandwalk.services 包中,我有一个没有注释的 UserService 接口(interface)和一个用 @Service 注释的 UserServiceImpl

我不明白如果 DI 可以运行我的应用程序而不是为什么它在测试中不起作用。正如错误消息所述,spring boot 未发现我带注释的实现类。

测试与我的应用程序类位于同一个包中:hu.bookandwalk我所有的服务、存储库、域都位于以下位置:hu.bookandwalk.serviceshu.bookandwalk.domain、...

知道我错过了测试类的哪种注解来使 userServiceImpl 可被发现吗?

最佳答案

尝试在@ContextConfiguration中插入UserServiceImpl.class

关于dependency-injection - 依赖注入(inject)在spring boot测试中不起作用,但在正常开发中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43201690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com