我有多个弹簧配置文件。很少有用于测试的。
在整个代码库中,Idea12 都将所有 Autowired bean 突出显示为“有不止一个 XXX 类型的 bean”。
如何配置 IDEA 以便正确识别要在测试和生产中使用的实例?
我有多个弹簧配置文件。很少有用于测试的。
在整个代码库中,Idea12 都将所有 Autowired bean 突出显示为“有不止一个 XXX 类型的 bean”。
如何配置 IDEA 以便正确识别要在测试和生产中使用的实例?
应该会在下次更新中修复。但与此同时,只需Project Structure
->
Facets
->
Spring
删除一些应用程序上下文配置,其中包括已定义的配置。
例如,我的项目中有 2 个模块:Core(jar)和依赖于 Core 的 Webapp(war)。当两者都包含在 IDEA 中的 Spring 方面时,IDE 会两次看到核心应用程序上下文中定义的 bean:第一次直接来自核心应用程序上下文,第二次来自包含核心上下文的 Webapp 上下文。由于 Core 模块 bean 已经在 Web 模块中可见,因此可以删除 Core 的 Spring facet 并且问题将得到修复。
当我尝试使用两个或更多注释来注释一个类时,也会出现此问题,如下所示:
@Service
@Repository
public class Foo {...}
@Component
public class AnotherFoo {
@Inject
Foo foo; // Here is error in IDEA, in spite of Spring takes it normally.
}
所以从不必要的注释中清除(@Service
在这个例子中)可以帮助避免恼人的警告。
我不认为这个问题在 12.1.4 中得到解决。不完美的解决方法是右键单击测试文件夹中的 spring 配置文件并将其标记为纯文本。
I deactivated the warning through Settings -> Inspections -> Spring Model -> Autowiring for Bean Class. Hope this issue will be fixed soon. Im using version 12.1.4 of IntelliJ