Intellij IDEA的自定义插件可以在其代码中使用DI吗?

时间:2018-12-08 09:38:35

标签: java intellij-idea intellij-plugin

我正在为Intellij IDEA 2018.2+开发一个插件,它将提供一些其他检查。

我已经了解到,有一个plugin.xml文件是插件的“心脏”,它负责插件的主要行为。

据我了解,要实现(例如)其他检查行为,我们需要在inspectionToolProvider中定义plugin.xml并继承InspectionToolProvider接口。为其他扩展名定义了相同的结构-我们需要在.xml中定义一些内容并实现一些接口。

让我困扰的是,如果我想实现某种或多或少的复杂算法,则似乎需要使用许多静态方法和实用程序类,因为我还没有找到使用DI的方法(例如春季)在插件开发期间。

某些examples in Intellij IDEA SDK docs还将“ helper”方法显示为实用程序类中定义的静态方法。

因此,总体问题:在Intellij IDEA插件开发过程中是否可以使用依赖项注入

1 个答案:

答案 0 :(得分:0)

IntelliJ IDEA具有自己的依赖项注入,由PicoContainer管理。它允许您将任何组件或服务注入到在相同或更低级别(可能是应用程序,项目和模块)创建的任何组件,服务或扩展的构造函数中。要使用它,您只需声明一个对应类型的构造函数参数即可。您不需要应用任何额外的注释。

您还可以在插件中启动自己的DI容器(使用Spring或任何其他框架),但是支持核心IntelliJ IDEA组件的注入将由您自己负责。