Configuración de clientes en la infraestructura Spring

Puede sustituir los valores de ObjectGrid del lado del cliente con Spring Framework.

Acerca de esta tarea

El siguiente archivo XML de ejemplo muestra cómo crear un elemento ObjectGridConfiguration y utilizarlo para alterar temporalmente algunos valores del lado del cliente. Puede crear una configuración similar utilizando configuración programática o configurando el archivo XML de descriptor de ObjectGrid.

[Version 8.5 and later] Para obtener información sobre cómo utilizar los beans ObjectGridClientBean y ObjectGridCatalogServiceDomainBean para dar soporte a la abstracción de memoria caché de Spring Framework versión 3.1, consulte Configuring a Spring cache provider.

Procedimiento

  1. Cree un archivo XML para configurar clientes con la infraestructura 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. Cargue el archivo XML que ha creado y cree el ObjectGrid.
    BeanFactory beanFactory = new XmlBeanFactory(newUrlResource
    		("file:test/companyGridSpring.xml"));
    ObjectGrid companyGrid = (ObjectGrid) beanFactory.getBean("companyGrid");

    Lea sobre Visión general de la infraestructura Spring para obtener más información sobre la creación de un archivo de descriptor XML.