XAgent importPackage 与 none 范围内的托管 bean

XAgent importPackage vs. managed bean in none scope

您在 XAgent 中 运行 应用程序(业务)逻辑的首选方式是什么?

XAgent 使用 importPackage:

XAgent

importPackage(com.test.model.configuration);

FolderConfiguration.updateFolders(
      facesContext.getExternalContext().getRequest().getReader());

XAgent 在 none 范围内使用托管 bean:

面孔-config.xml

<managed-bean>
        <managed-bean-name>folderConfig</managed-bean-name>
        <managed-bean-class>com.test.model.configuration.FolderConfiguration   
       </managed-bean-class>
        <managed-bean-scope>none</managed-bean-scope>
      </managed-bean

XAgent

folderConfig.updateFolders(
          facesContext.getExternalContext().getRequest().getReader());

我不确定两者的优缺点。

感谢任何提示。

两个版本在 运行 时间性能上不会有显着差异。

所以,更多的是代码设计的问题。

托管 bean 的优点:

  • Java class引用定义在中心位置
    如果稍后更改 Java 包,则必须更改托管 bean 仅定义
  • Java脚本代码更短

importPackage 的优点:

  • Java class 的使用独立于外部托管 bean 设置
  • Java class 如果只调用静态方法就不需要实例化

如果您在多个 XPage 或自定义控件上使用此 Java class,我会选择托管 bean 版本。否则我会使用 importPackage 或直接调用

com.test.model.configuration.FolderConfiguration.updateFolders(...)