Java Config для Spring Gemfire xml

spring-data spring-java-config gemfire spring-data-gemfire

2771 просмотра

2 ответа

35 Репутация автора

Я определил "client-cache.xml" моего Gemfire, как показано ниже:

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:gfe="http://www.springframework.org/schema/gemfire"
   xsi:schemaLocation="http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd
                       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <gfe:pool id="client" subscription-enabled="true">
    <gfe:locator host="localhost" port="41114"/>
    </gfe:pool>

    <gfe:client-cache pool-name="client"/>

    <gfe:client-region id="dataRegion" name="dataRegion" pool-name="client" shortcut="PROXY"/>

</beans>

Я хочу создать соответствующую конфигурацию Java для того же.

Я попробовал ниже конфигурации:

@Resource
private Cache gemfireCache;

@Resource
private Pool client;

@Bean
public PoolFactoryBean client() {
    PoolFactoryBean client = new PoolFactoryBean();
    client.setSubscriptionEnabled(true);
    client.addLocators(new ConnectionEndpoint("localhost", 41114));
    return client;
}

@Bean
public ClientRegionFactoryBean<String, AbstractContent> dataRegion() {
    ClientRegionFactoryBean<String, AbstractContent> dataRegionFactory = new ClientRegionFactoryBean<>();
    dataRegionFactory.setPoolName("client");
    dataRegionFactory.setName("dataRegion");
    dataRegionFactory.setShortcut(ClientRegionShortcut.PROXY);
    return dataRegionFactory;
}

@Bean
public ClientCacheFactoryBean gemfireCache() {
    ClientCacheFactoryBean clientCacheFactory = new ClientCacheFactoryBean();
    clientCacheFactory.setPoolName("client");
    clientCacheFactory.setPdxSerializer(mappingPdxSerializer());
    return clientCacheFactory;
}

@Bean
public PlatformTransactionManager gemfireTransactionManager() throws Exception {
    return new GemfireTransactionManager(gemfireCache);
}

Тем не менее, я продолжаю сталкиваться с исключением, говоря:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.gemstone.gemfire.cache.client.ClientCache] is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:372)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:369)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:332)
at org.springframework.data.gemfire.client.PoolFactoryBean.eagerlyInitializeClientCacheIfNotPresent(PoolFactoryBean.java:218)
at org.springframework.data.gemfire.client.PoolFactoryBean.getObject(PoolFactoryBean.java:171)
at org.springframework.data.gemfire.client.PoolFactoryBean.getObject(PoolFactoryBean.java:65)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)
at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1590)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:317)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)

Разве невозможно преобразовать вышеуказанный XML в конфигурацию на основе Java?

Любая помощь будет оценена. Благодарю.

=============== Отредактировано ниже согласно комментариям Джона ==============

@John,

Я попробовал упомянутый пример @ sample test для клиента gemfire, и пример, как он, работал нормально. Я использую локатор и пример работал нормально с конфигурацией локаторов как gemfirePool.setLocators(Collections.singletonList(new InetSocketAddress(host, port))). Тем не менее, я использую spring-data-gemfire версии 1.8.2.RELEASE в соответствии с рекомендациями поддержки Pivotal. Так что я

  • обновил версию spring-data-gemfire до версии 1.8.2.RELEASE @ pom.xml ,
  • исправил ошибки компиляции
    (прокомментировал gemfireCache.setLazyInitialize(true)),
  • и изменился gemfirePool.setLocators(Collections.singletonList(new InetSocketAddress(locatorHost, locatorPort)))на gemfirePool.addLocators(Collections.singletonList(new ConnectionEndpoint(locatorHost, locatorPort))),

контрольный пример пошел на бросок.

Тестовый пример начал давать мне следующее исключение:

java.lang.IllegalStateException: Failed to load ApplicationContext
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
    at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'gemfireCache' defined in io.pivotal.gemfire.cache.client.SpringGemFireClientCacheTest$SpringGemFireClientConfiguration: Unsatisfied dependency expressed through constructor argument with index 1 of type [com.gemstone.gemfire.cache.client.Pool]: : Error creating bean with name 'gemfirePool': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.gemstone.gemfire.cache.client.ClientCache] is defined; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemfirePool': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.gemstone.gemfire.cache.client.ClientCache] is defined
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:464)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:753)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:125)
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:109)
    at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:261)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
    ... 25 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gemfirePool': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.gemstone.gemfire.cache.client.ClientCache] is defined
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1585)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
    ... 43 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.gemstone.gemfire.cache.client.ClientCache] is defined
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:372)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:332)
    at org.springframework.data.gemfire.client.PoolFactoryBean.eagerlyInitializeClientCacheIfNotPresent(PoolFactoryBean.java:218)
    at org.springframework.data.gemfire.client.PoolFactoryBean.getObject(PoolFactoryBean.java:171)
    at org.springframework.data.gemfire.client.PoolFactoryBean.getObject(PoolFactoryBean.java:65)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
    ... 52 more

Итак, похоже, это проблема с spring-data-gemfire 1.8.2.RELEASE. Я не совсем уверен, должен ли я просто вернуться к 1.6.2.RELEASE и что я потеряю, вернувшись к предыдущей версии.

Я создал другой пример весеннего загрузочного приложения:

  • pom.xml

    http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 com.cdk.test TestGemfireLocators 0.0.1-SNAPSHOT

    <parent>
        <groupId>io.spring.platform</groupId>
        <artifactId>platform-bom</artifactId>
        <version>2.0.6.RELEASE</version>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-gemfire</artifactId>
            <version>1.8.2.RELEASE</version>
        </dependency>
    
    </dependencies>
    

  • Application.java

    @SpringBootApplication открытый класс Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
    
    @Bean(name = "region")
    public ClientRegionFactoryBean region(ClientCache gemfireCache, Pool gemfirePool) {
        ClientRegionFactoryBean versionedRegion = new ClientRegionFactoryBean();
        versionedRegion.setName("region");
        versionedRegion.setCache(gemfireCache);
        versionedRegion.setPool(gemfirePool);
        versionedRegion.setShortcut(ClientRegionShortcut.PROXY);
        return versionedRegion;
    }
    
    @Bean
    public ClientCacheFactoryBean gemfireCache(@Qualifier("gemfireProperties") Properties gemfireProperties,
            Pool gemfirePool) {
        ClientCacheFactoryBean gemfireCache = new ClientCacheFactoryBean();
        gemfireCache.setPool(gemfirePool);
        gemfireCache.setProperties(gemfireProperties);
        return gemfireCache;
    }
    
    @Bean(name = GemfireConstants.DEFAULT_GEMFIRE_POOL_NAME)
    public PoolFactoryBean gemfirePool(@Value("${locator.host}") String host, @Value("${locator.port}") int port) {
        PoolFactoryBean gemfirePool = new PoolFactoryBean();
        gemfirePool.setName(GemfireConstants.DEFAULT_GEMFIRE_POOL_NAME);
        gemfirePool.setSubscriptionEnabled(true);
        gemfirePool.addLocators(new ConnectionEndpoint(host, port));
        return gemfirePool;
    }
    
    @Bean
    public Properties gemfireProperties(@Value("${gemfire.log.level:config}") String logLevel) {
        Properties gemfireProperties = new Properties();
        gemfireProperties.setProperty("log-level", logLevel);
        return gemfireProperties;
    }
    

    }

Код выше тоже не работает и возвращает то же исключение. Я пробовал приведенный выше код с версией по умолчанию «spring-data-gemfire», содержащей with-in io.spring.platform(1.7.4.RELEASE), и с тем же результатом.

------------- ПОЧТА Комментарии Джона и справочная программа -------------------

Большое спасибо, Джон. Приведенный вами пример помог мне, однако мне пришлось внести несколько изменений в код. Ниже показано, как выглядит мой окончательный проект (если вы заметили, я делаю инъекцию GemfireCacheвместо ClientCache):

  • pom.xml

    http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 com.cdk.test TestGemfireLocators 0.0.1-SNAPSHOT

    <parent>
        <groupId>io.spring.platform</groupId>
        <artifactId>platform-bom</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
        </dependency>
    
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-gemfire</artifactId>
            <version>1.8.2.RELEASE</version>
        </dependency>
    
    </dependencies>
    

  • Application.java

    @SpringBootApplication открытый класс Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
    
    @Resource(name = "myRegion")
    private Region<String, Object> myRegion;
    
    int intValue(Long value) {
        return value.intValue();
    }
    
    String logLevel() {
        return System.getProperty("gemfire.log-level", "config");
    }
    
    Properties gemfireProperties() {
        Properties gemfireProperties = new Properties();
        gemfireProperties.setProperty("log-level", logLevel());
        return gemfireProperties;
    }
    
    @Bean
    ClientCacheFactoryBean gemfireCache() {
        ClientCacheFactoryBean gemfireCache = new ClientCacheFactoryBean();
    
        gemfireCache.setClose(true);
        gemfireCache.setProperties(gemfireProperties());
    
        return gemfireCache;
    }
    
    @Bean(name = GemfireConstants.DEFAULT_GEMFIRE_POOL_NAME)
    PoolFactoryBean gemfirePool(@Value("${locator.host}") String host, @Value("${locator.port}") int port) {
    
        PoolFactoryBean gemfirePool = new PoolFactoryBean();
    
        gemfirePool.setKeepAlive(false);
        gemfirePool.setSubscriptionEnabled(true);
        gemfirePool.setThreadLocalConnections(false);
    
        gemfirePool.addLocators(new ConnectionEndpoint(host, port));
    
        return gemfirePool;
    }
    
    @Bean(name = "myRegion")
    ClientRegionFactoryBean<String, Object> myRegion(@Value("${region.name}") String regionName, GemFireCache gemfireCache,
            Pool gemfirePool) {
        ClientRegionFactoryBean<String, Object> myRegion = new ClientRegionFactoryBean<>();
    
        myRegion.setCache(gemfireCache);
        myRegion.setName(regionName);
        myRegion.setPool(gemfirePool);
        myRegion.setShortcut(ClientRegionShortcut.PROXY);
    
        return myRegion;
    }
    
    @Bean
    PlatformTransactionManager gemfireTransactionManager(GemFireCache gemfireCache) {
        return new GemfireTransactionManager((Cache) gemfireCache);
    }
    

    }

Автор: Shailesh Источник Размещён: 18.07.2016 08:25

Ответы (2)


0 плюса

1164 Репутация автора

Попробуйте использовать метод bean вместо @Resource, например

return new GemfireTransactionManager(gemfireCache());
Автор: dturanski Размещён: 18.07.2016 01:30

1 плюс

4699 Репутация автора

Решение

В NoSuchBeanDefinitionExceptionотносится к закачиваемой Cacheссылке в вашем классе конфигурации Java приложений ...

@Resource
private Cache gemfireCache

Примечание: вы можете предпочесть использование @Injectили Spring @Autowired , аннотацию вместо этого, так как это технически более точным.

Проблема здесь заключается в том, что в вашей конфигурации Spring Java нет определенного bean-компонента Spring типа " Cache" .

Если вы посмотрите более внимательно на ClientCacheFactoryBean, getObjectType()метод, который Spring использует для проверки боба (определения) в процессе автоматического связывания компонентов программы «по типу», вы видите , что он возвращается ClientCache.class. Технически ClientCacheFactoryBean.getObjectType()также возвращает фактический тип объекта кэша, но я не помню, когда Spring проверял доступные определения bean-компонентов для разрешения зависимостей типов. Кроме того, я думаю, что контейнер Spring также поддерживает отображение типа на bean-компонент (aka cache) во время синтаксического анализа. Единственная причина, по которой последнее относится к делу, заключается в том, что GemFire ​​имеет только 1 реализацию Cacheи ClientCache, и эту реализацию, а именно GemFireCacheImplреализует оба интерфейса. Так что, похоже, это должно быть решаемо, но ...

Во всяком случае, все это должно объяснить исключение с большей ясностью.

К сожалению, вы не можете использовать ...

return new GemfireTransactionManager(gemfireCache());

Поскольку gemfireCache()определение bean-компонента «метод» возвращает экземпляр объекта, ClientCacheFactoryBeanа GemfireTransactionManagerконструктор ожидает экземпляр объекта Cache.

Тем не менее, вы можете определить аргументы типа Cache, ClientCacheи по GemFireCacheмере необходимости ГРС FactoryBeans. Например, ваш gemfireTransactionManagerбоб может быть определен как ...

@Bean
public PlatformTransactionManager gemfireTransactionManager(GemFireCache gemfireCache) {
  return new GemfireTransactionManager((Cache) gemfireCache));
}

ПРИМЕЧАНИЕ: ClientCacheрасширяется GemFireCache.

Аналогично, ваше определение bean-компонента Region " dataRegion" также ожидает и может взять экземпляр кэша, например, так ...

@Bean
public ClientRegionFactoryBean<String, AbstractContent> dataRegion(ClientCache gemfireCache, Pool gemfirePool) {
  ...
  dataRegion.setCache(gemfireCache);
  dataRegion.setPool(gemfirePool);
  ...
}

Также обратите внимание, что я могу передать ссылку на пул GemFire, который Region должен использовать для операций доступа к данным на серверах кластера.

Spring обрабатывает параметры @Beanметода определения конфигурации Java как «зависимости типа», так что вы можете просто определить ожидаемый, результирующий тип компонента, требуемый для рассматриваемого компонента компонента (например, «gemfireTransactionManager», который ожидает зависимость компонента «Cache»).

В общем, нет проблем с переключением с XML на конфигурацию Java. Фактически, я поощряю это и даже использую конфигурацию Java все больше и больше в моих примерах ( например ). Со временем я планирую преобразовать большинство примеров Spring -Gemfire в использование Spring Boot и конфигурации Java.

Говоря о spring-gemfire-examples , есть также пример с конфигурацией Java . Но я думаю, что этот пример демонстрирует одноранговый кеш. Таким образом, вы можете найти примеры в 3 более полезными, поскольку я сравниваю и сопоставляю как собственную конфигурацию GemFire, так и конфигурацию Spring с использованием XML и Java.

Например, мой ClientCacheпример конфигурации Java имеет как GemFire кэш сервер Java конфигурации и клиент Java конфигурацию .

В любом случае, надеюсь, что это поможет, и если у вас есть дополнительные вопросы, не стесняйтесь обращаться

Ура, Джон

Обновление - 2016-07-19

Пример (и тест) для этой проблемы с использованием клиента кэширования GemFire, здесь представлена ​​конфигурация Spring Java .

Автор: John Blum Размещён: 18.07.2016 05:00
Вопросы из категории :
32x32