YLo*_*rdi 5 spring-mvc autowired spring-boot intellij-14
我有一个使用 Spring MVC 和 Spring Boot 的项目,我使用 IntelliJ。我的项目是这样的:
main -> java -> mypackage -> authentification -> WebSecurityConfig.java
-> configuration -> ApplicationConfiguration.java
-> controller -> WelcomeMessageController.java
-> service -> WelcomeMessageService.java
-> Impl -> WelcomeMessageServiceImpl.java
test -> java -> mypackage -> WelcomeMessageTest.java
Run Code Online (Sandbox Code Playgroud)
我用@Service
.
我用
@Configuration
@ComponentScan(basePackages = "mypackage")
Run Code Online (Sandbox Code Playgroud)
在控制器中,我注入了服务
@Autowired
WelcomeMessageService welcomeMessageService;
Run Code Online (Sandbox Code Playgroud)
在测试类中,我使用相同的注解注入相同的服务:
@Autowired
WelcomeMessageService welcomeMessageService;
Run Code Online (Sandbox Code Playgroud)
我用以下注释测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = ApplicationConfiguration.class, loader = SpringApplicationContextLoader.class)
@WebAppConfiguration
Run Code Online (Sandbox Code Playgroud)
在控制器中,注入工作正常,但在测试类中,IntelliJ 说:
无法自动装配。未找到 WelcomeService 类型的 bean。
当我运行测试时,它可以工作,但我不明白为什么 IntelliJ 说它找不到 bean。
我发现这个主题说它在 IntelliJ 中发生了一段时间,但我不想使用@SuppressWarnings
注释。
有没有人有其他解决方案来解决这个问题?
我遇到了同样的问题,无法将 AutowWire beans 集成到集成测试类中。您的问题帮助我通过添加“ContextConfiguration”注释而不是我正在使用的“SpringApplicationConfiguration”来解决这个问题。
然而,我现在看到的唯一区别是您缺少 Application 类(扩展 SpringBootServletInitializer)中的 @EnableAutoConfiguration 或您拥有 @Configuration 的类。
希望这能解决您的问题。底线是,在这个非常具体的情况下,这是由于不适当的注释引起的。
归档时间: |
|
查看次数: |
5154 次 |
最近记录: |