程序包 org.xmeta

类 ContextVarProvider

java.lang.Object
org.xmeta.ContextVarProvider
所有已实现的接口:
ActionListener

public abstract class ContextVarProvider extends Object implements ActionListener

ContextVarProvider通常只针对动作,而不针对模型的行为。目的是提供资源,以及自动管理资源等。比如提供数据库连接,并在执行完毕后自动释放连接。

通常在init方法里初始化资源,并放到动作上下文的当前栈中。在onSuccess和onException中释放资源,如执行close方法。

资源复用。目前资源复用采用资源id判断法,即如果资源的id相同那么认为是同一个资源。比如判断一个数据库连接是否已经存在,可以使用Object findPreContextVar(String id, ActionListenerExecutor executor) 方法获取同id的资源是否已经存在。资源是否复用,是由资源自己觉得。

默认一个ContextVarProvider只提供一个资源,如果有多个资源,且资源是可以复用的,那么需要重写Object getContextVarById(String id)方法。

  • 构造器详细资料

    • ContextVarProvider

      public ContextVarProvider()
  • 方法详细资料

    • findPreContextVar

      public Object findPreContextVar(String id, ActionListenerExecutor executor)
      查找是否之前的ContextProvider已经提供了相同id的变量了。比如同一个数据源应该只需要设置一次,不用重复获取。
      参数:
      id - 变量的ID
      executor - 动作监听的执行器
      返回:
      如果存在返回该变量,否则返回Null
    • getContextVarById

      public Object getContextVarById(String id)
      如果本ContextVarProvider提供指定id的资源,那么返回该对象。
      参数:
      id - 资源id
      返回:
      资源对象,如果存在
    • getId

      public abstract String getId()
      返回资源id。适合单资源时,多资源应该重写getContextVarById方法 。
      返回:
      资源id
    • getVar

      public abstract Object getVar()
      返回资源对象。适合单资源时,多资源应该重写getContextVarById方法 。
      返回:
      资源对象