我开始开发一个经典的Spring Boot MVC应用程序。我使用依赖注入(使用@Service
,@Autowired
注释)没有任何问题。
当我尝试使用依赖注入运行某些集成测试时,我从Junit收到以下错误消息:
org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为'hu.bookandwalk.RepositoryTests'的bean时出错: 通过字段'userService'表示的不满意的依赖;嵌套 例外是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有 'hu.bookandwalk.services.UserService'类型的限定bean 可用:预计至少有1个符合autowire资格的bean 候选人。依赖注释: {@ org.springframework.beans.factory.annotation.Autowired(所需=真)}
测试代码的相关部分:
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
界面和一个用UserServiceImpl
注释的@Service
类。
我不明白,如果DI适用于运行我的应用程序而不是它在测试中不起作用的原因。不知怎的,春天启动时没有发现我带注释的实现类,因为错误消息说明了。
测试与我的应用程序类位于同一个包中:hu.bookandwalk
我的所有服务,存储库和域都位于以下位置:hu.bookandwalk.services
,hu.bookandwalk.domain
,...
知道测试课让我发现userServiceImpl
可以发现什么样的注释?
答案 0 :(得分:3)
尝试在@font-face
UserServiceImpl.class