今天要实现的功能是,检查xml中的增删改查有没有对应的DAO层方法,如果没有,则报错。
IDEA插件中是通过 Inspection 来实现这个功能。
对XML的检查,IDEA提供了一个BasicDomElementsInspection
来做基本检查,我们需要做的就是做好DOM解析工作,对关键属性添加converter
。最后注册到plugin.xml
即可。
为了让BasicDomElementsInspection
帮我们做Dom元素检查,我们首先需要为属性添加约束条件。
例如,我们想让增删改查对应这DAO层方法,那我们就可以为他们的id属性添加一个ResolvingConverter
:
先添加一个适配器,提供默认实现方法,具体减少实现类的无用代码:
然后就创建一个DAO层方法绑定的实现,重写fromString()
方法,根据命名空间和id(即方法名称)查询对应的DAO方法:
然后绑定到增删改查都实现的接口上:
最后,我们实现一个BasicDomElementsInspection
即可:
注册到plugin.xml
中:
还有一点小完善,就是为这个inspection创建说明文档,这个文档在settings对话框中展示。如果没有提供这样的说明文档,IDEA会给提示。
在/resources/inspectionDescriptions
下创建MybatisMapperXmlInspection.html
:
实现的效果:
检测到没有DAO层方法:
打开setting提示: