我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误

没有豆子?

如你所见,它通过了测试?所以它一定是自动连接的?


当前回答

有时需要指明@ComponentScan应该在哪里扫描组件。你可以通过将包作为这个注释的参数来实现,例如:

@ComponentScan(basePackages={"path.to.my.components","path.to.my.othercomponents"})

然而,正如前面提到的,@SpringBootApplication注释替换了@ComponentScan,因此在这种情况下,你必须做同样的事情:

@SpringBootApplication(scanBasePackages={"path.to.my.components","path.to.my.othercomponents"})

至少在我的案例中,Intellij停止了抱怨。

其他回答

IntelliJ IDEA Ultimate

将您的主类添加到IntelliJ Spring应用程序上下文中,例如Application.java

文件->项目结构..

左边: 项目设置->模块

右边:在你的包结构中找到 Spring并添加+ Application.java

有时——就我而言——原因是一个错误的输入。我不小心导入了

import org.jvnet.hk2.annotations.Service

而不是

import org.springframework.stereotype.Service

盲目地接受Idea建议的导入中的第一个选择。第一次发生的时候我花了几分钟:-)

只需添加以下两个注释到您的POJO。

@ComponentScan
@Configuration
public class YourClass {
    //TODO
}

只要你的测试通过了,你是好的,点击alt + enter,将光标移到错误上,在第一项的子菜单中,你会发现禁用检查,选择它

你需要做的就是添加

AppConfiguration.java中的@ComponentScan("package/include/your/annotation/component")

因为我认为你的AppConfiguraion.java的包比你的注释组件(@Service, @Component…)的包更深,

比如“package/include/your/annotation/component/deep /config”。