一.导读
本文主要讲解idea的组件模型,关于组件是基于PicoContainer实现的,从结构层次来讲组件是包含在容器中的,容器又分为Application level components、Project level components、Module level components三种级别。一个Application包含多个Project,一个Project又包含多个Module。
二.介绍
1.Components类型
Components有Application level components、Project level components、Module level components三种类型。
图
2.Components生命周期
(1).Application level components
//创建-1.初始化
default void initComponent() {
}
//创建-2.如果组件实现JDOMexternalizable接口,则调用接口的readExternal方法
//创建-3.如果组件实现PersistentStateComponent并且具有非默认的持久化状态,则调用接口的loadState方法
//卸载-1.释放
default void disposeComponent() {
}
(2).Project level components
//创建-1.初始化
default void initComponent() {
}
//创建-2.通知已加载项目
default void projectOpened() {
}
//卸载-1.关闭
default void projectClosed() {
}
//卸载-2.释放
default void disposeComponent() {
}
(3).Module level components
//创建-1.初始化
default void initComponent() {
}
//创建-2.通知已将模块添加到项目中
default void moduleAdded() {
}
//创建-3.通知已加载项目
@Deprecated
default void projectOpened() {
}
//卸载-1.关闭
@Deprecated
default void projectClosed() {
}
//卸载-2.释放
default void disposeComponent() {
}
3.Components注册
(1).Application level components
//创建一个 Application level component
public interface Component1 extends ApplicationComponent {
}
public class Component1Impl implements Component1 {
}
(2).Project level components
//创建一个 Project level component
public interface Component2 extends ProjectComponent {
}
public class Component2Impl implements Component2 {
}
(3).Module level components
//创建一个 Module level component
public interface Component3 extends ModuleComponent {
}
public class Component3Impl implements Component3 {
}
plugin.xml
图
原文链接:《零基础IntelliJ IDEA插件开发白话教程》第3节 Components,转载请注明来源!