7

我有多个弹簧配置文件。很少有用于测试的。

在整个代码库中,Idea12 都将所有 Autowired bean 突出显示为“有不止一个 XXX 类型的 bean”。

如何配置 IDEA 以便正确识别要在测试和生产中使用的实例?

4

4 回答 4

3

应该会在下次更新中修复。但与此同时,只需Project Structure -> Facets -> Spring删除一些应用程序上下文配置,其中包括已定义的配置。

例如,我的项目中有 2 个模块:Core(jar)和依赖于 Core 的 Webapp(war)。当两者都包含在 IDEA 中的 Spring 方面时,IDE 会两次看到核心应用程序上下文中定义的 bean:第一次直接来自核心应用程序上下文,第二次来自包含核心上下文的 Webapp 上下文。由于 Core 模块 bean 已经在 Web 模块中可见,因此可以删除 Core 的 Spring facet 并且问题将得到修复。

于 2013-02-05T10:59:50.413 回答
0

当我尝试使用两个或更多注释来注释一个类时,也会出现此问题,如下所示:

@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在这个例子中)可以帮助避免恼人的警告。

于 2013-05-20T09:10:51.183 回答
0

我不认为这个问题在 12.1.4 中得到解决。不完美的解决方法是右键单击测试文件夹中的 spring 配置文件并将其标记为纯文本。

于 2013-08-14T05:52:37.750 回答
0

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

于 2013-08-29T08:29:31.120 回答