我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误
没有豆子?
如你所见,它通过了测试?所以它一定是自动连接的?
我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误
没有豆子?
如你所见,它通过了测试?所以它一定是自动连接的?
当前回答
你所需要做的是让这个工作是以下代码:
@ComponentScan
public class PriceWatchTest{
@Autowired
private PriceWatchJpaRepository priceWatchJpaRepository;
...
...
}
其他回答
我在spring引导应用程序中解决这个问题的方法是打开spring应用程序上下文,并手动为缺失的自动连接bean添加类!
(通过项目结构菜单或弹簧工具窗口访问…编辑“Spring Application Context”)
因此,SpringApplicationContext不仅仅包含我的ExampleApplication spring配置,它还包含了缺失的Bean:
SpringApplicationContext:
ExampleApplication.java MissingBeanClass.java
et voilà:错误信息消失!
有时需要指明@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版本(2016.3.4 Build 163)似乎支持这一点。诀窍在于您需要启用Spring Data插件。
这是另一种“不能自动装配”。No Beans of…”可以通过安装插件来解决,在我的案例中是Spring Batch中的JobBuilderFactory。
简单,你只需要做2步
添加休眠内核依赖项 将@Autowired改为@Resource。
==>> change @Autowired to @Resource