我正在尝试为我的插件添加配置,但我对我的选项感到困惑。任何人都可以给我一个webwork操作与servlet的比较,特别是在配置UI方面。
到目前为止我的背景是我经历了this tutorial。之后我发现我安装的所有插件都使用了操作,并且查看一些现有代码,我发现实现和使用的操作看起来更简单(不需要实现JavaScript / REST接口)。
我很困惑为什么教程似乎使事情过于复杂,实际上没有提到做同样事情的更简单的方法。任何人吗?
最重要的是,我至少看到了三种保存设置的方法:使用PluginSettingsFactory
,BandanaManager
或ConfigurationManager
。更混乱!如今,将这些设置融合在一起的“现代”方式是什么?
答案 0 :(得分:2)
<atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2">
<plugin-info>
<description>${project.description}</description>
<version>${project.version}</version>
<vendor name="${project.organization.name}" url="${project.organization.url}"/>
<param name="plugin-icon">images/pluginIcon.png</param>
<param name="plugin-logo">images/pluginLogo.png</param>
<param name="configure.url">/admin/plugins/PATHTOYOURCONFIGPAGE</param>
</plugin-info>
...
</atlassian-plugin>
如果您查看PluginSettingsFactory interface以及实现此接口的所有已知类的列表,您将找到ConfluencePluginSettingsFactory。声明了public void setBandanaManager (BandanaManager bandanaManager)
方法。这是BandanaManager的依赖注入。这表明PluginSettingsFactory interface的实现使用BandanaManager进行属性持久性。
我个人不知道 ConfigurationManager 的事情。我使用BandanaManager为我的所有汇合插件存储将通过管理员设置页面或其他地方设置的属性。
请查看atlassian所描述的保持数据的最先进方式:Persistence in Confluence。他们也使用BandanaManager。