Configurando Clientes na Estrutura Spring

É possível substituir as configurações do ObjectGrid do lado do cliente com o Spring Framework.

Sobre Esta Tarefa

O arquivo XML de exemplo a seguir mostra como construir um elemento ObjectGridConfiguration e utilizá-lo para substituir algumas configurações do lado do cliente. Uma configuração semelhante pode ser criada usando a configuração programática ou configurando o arquivo XML do descritor do ObjectGrid.

[Version 8.5 and later] Para obter informações sobre como usar os beans ObjectGridClientBean e ObjectGridCatalogServiceDomainBean para suportar a abstração de cache do Spring Framework Versão 3.1, consulte Configurando um Provedor de Cache Spring.

Procedimento

  1. Crie um arquivo XML para configurar os clientes com a estrutura Spring.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    		"http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
      <bean id="companyGrid" factory-bean="manager" factory-method="getObjectGrid"
        singleton="true">
        <constructor-arg type="com.ibm.websphere.objectgrid.ClientClusterContext">
          <ref bean="client" />
        </constructor-arg>
        <constructor-arg type="java.lang.String" value="CompanyGrid" />
    </bean>
    
      <bean id="manager" class="com.ibm.websphere.objectgrid.ObjectGridManagerFactory"
        factory-method="getObjectGridManager" singleton="true">
        <property name="overrideObjectGridConfigurations">
          <map>
            <entry key="DefaultDomain">
              <list>
                <ref bean="ogConfig" />
              </list>
            </entry>
          </map>
        </property>
      </bean>
    
      <bean id="ogConfig"
        class="com.ibm.websphere.objectgrid.config.ObjectGridConfigFactory"
        factory-method="createObjectGridConfiguration">
        <constructor-arg type="java.lang.String">
          <value>CompanyGrid</value>
        </constructor-arg>
        <property name="plugins">
          <list>
    	  <bean class="com.ibm.websphere.objectgrid.config.ObjectGridConfigFactory"
              factory-method="createPlugin">
              <constructor-arg type="com.ibm.websphere.objectgrid.config.PluginType"
                value="TRANSACTION_CALLBACK" />
              <constructor-arg type="java.lang.String"
                value="com.company.MyClientTxCallback" />
            </bean>
            <bean class="com.ibm.websphere.objectgrid.config.ObjectGridConfigFactory"
              factory-method="createPlugin">
              <constructor-arg type="com.ibm.websphere.objectgrid.config.PluginType"
                value="OBJECTGRID_EVENT_LISTENER" />
              <constructor-arg type="java.lang.String" value="" />
            </bean>
          </list>
    	</property>
          <property name="backingMapConfigurations">
            <list>
    	    <bean class="com.ibm.websphere.objectgrid.config.ObjectGridConfigFactory"
                factory-method="createBackingMapConfiguration">
                <constructor-arg type="java.lang.String" value="Customer" />
                  <property name="plugins">
    		    <bean class="com.ibm.websphere.objectgrid.config.ObjectGridConfigFactory"
                      factory-method="createPlugin">
                      <constructor-arg type="com.ibm.websphere.objectgrid.config.PluginType"
    			  value="EVICTOR" />
    			<constructor-arg type="java.lang.String"
                        value="com.ibm.websphere.objectgrid.plugins.builtins.LRUEvictor" />
                    </bean>
                  </property>
                  <property name="numberOfBuckets" value="1429" />
                </bean>
                <bean class="com.ibm.websphere.objectgrid.config.ObjectGridConfigFactory"
                  factory-method="createBackingMapConfiguration">
                    <constructor-arg type="java.lang.String" value="OrderLine" />
                      <property name="numberOfBuckets" value="701" />
    			<property name="timeToLive" value="800" />
    			<property name="ttlEvictorType">
                        <value type="com.ibm.websphere.objectgrid.
    											TTLType">LAST_ACCESS_TIME</value>
    			</property>
                </bean>
              </list>
            </property>
          </bean>
    
          <bean id="client" factory-bean="manager" factory-method="connect"
            singleton="true">
            <constructor-arg type="java.lang.String">
    	    <value>localhost:2809</value>
            </constructor-arg>
    	  <constructor-arg
              type="com.ibm.websphere.objectgrid.security.
    						config.ClientSecurityConfiguration">
              <null />
            </constructor-arg>
    	  <constructor-arg type="java.net.URL">
    	    <null />
            </constructor-arg>
          </bean>
    </beans>
  2. Carregue o arquivo XML criado e construa o ObjectGrid.
    BeanFactory beanFactory = new XmlBeanFactory(newUrlResource
    		("file:test/companyGridSpring.xml"));
    ObjectGrid companyGrid = (ObjectGrid) beanFactory.getBean("companyGrid");

    Consulte o Visão Geral da Estrutura Spring para obter mais informações sobre como criar um arquivo descritor XML.