我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误
没有豆子?
如你所见,它通过了测试?所以它一定是自动连接的?
我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误
没有豆子?
如你所见,它通过了测试?所以它一定是自动连接的?
当前回答
最后一个重要的信息——添加ComponentScan,这样应用程序就知道它需要连接的东西。这与这个问题无关。但是,如果根本没有执行@autowiring,那么这可能是您的解决方案。
@Configuration
@ComponentScan(basePackages = {
"some_package",
})
public class someService {
其他回答
你需要做的就是添加
AppConfiguration.java中的@ComponentScan("package/include/your/annotation/component")
因为我认为你的AppConfiguraion.java的包比你的注释组件(@Service, @Component…)的包更深,
比如“package/include/your/annotation/component/deep /config”。
我删除了这段代码。不再有错误
另一种检查方法: 将@Service注释添加到Repository类中,它应该可以工作。
我在申请的时候也遇到过类似的问题。 当我添加注释时,不正确的高亮显示消失了。
@ContextConfiguration(classes = {...})
有时——就我而言——原因是一个错误的输入。我不小心导入了
import org.jvnet.hk2.annotations.Service
而不是
import org.springframework.stereotype.Service
盲目地接受Idea建议的导入中的第一个选择。第一次发生的时候我花了几分钟:-)
在使用@SpringBootApplication注释创建SpringBoot应用程序时,我也遇到了同样的问题。该注释根据spring引用表示@Configuration、@EnableAutoConfiguration和@ComponentScan。
正如预期的那样,新的注释工作正常,我的应用程序运行顺利,但Intellij一直抱怨未实现的@Autowire依赖项。当我重新分别使用@Configuration、@EnableAutoConfiguration和@ComponentScan时,错误就停止了。Intellij 14.0.3(很可能是更早的版本)似乎还没有配置为识别@SpringBootApplication注释。
现在,如果错误对您的影响如此之大,那么就恢复到那三个单独的注释。否则,忽略Intellij…您的依赖项解析配置正确,因为您的测试通过了。
永远记得……
人永远比机器伟大。