Spring Boot for Apache Geode & VMware Tanzu GemFire Reference Guide

John Blum

1.2.13.RELEASE

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Table of Contents

1. Introduction
2. Getting Started
3. Using Spring Boot for Apache Geode
3.1. Maven BOM
3.2. Gradle Dependency Management
4. Building ClientCache Applications
4.1. Building Embedded (Peer & Server) Cache Applications
4.2. Building Locator Applications
5. Auto-configuration
5.1. Customizing Auto-configuration
5.2. Disabling Auto-configuration
5.3. Overriding Auto-configuration
5.4. Replacing Auto-configuration
5.5. Auto-configuration Explained
5.5.1. @ClientCacheApplication
5.5.2. @EnableGemfireCaching
5.5.3. @EnableContinuousQueries
5.5.4. @EnableGemfireFunctionExecutions & @EnableGemfireFunctions
5.5.5. @EnableGemfireRepositories
5.5.6. @EnableLogging
5.5.7. @EnablePdx
5.5.8. @EnableSecurity
5.5.9. @EnableSsl
5.5.10. @EnableGemFireHttpSession
5.5.11. RegionTemplateAutoConfiguration
6. Declarative Configuration
6.1. Auto-configuration
6.2. Annotations not covered by Auto-configuration
6.3. Productivity Annotations
6.3.1. @EnableClusterAware (SBDG)
6.3.2. @EnableCachingDefinedRegions, @EnableClusterDefinedRegions & @EnableEntityDefinedRegions (SDG)
@EnableCachingDefinedRegions
@EnableEntityDefinedRegions
@EnableClusterDefinedRegions
6.3.3. @EnableIndexing (SDG)
6.3.4. @EnableExpiration (SDG)
6.3.5. @EnableGemFireMockObjects (STDG)
7. Externalized Configuration
7.1. Externalized Configuration of Spring Session
8. Caching using Apache Geode or VMware GemFire
8.1. Look-Aside Caching, Near Caching, Inline Caching and Multi-Site Caching
8.1.1. Look-Aside Caching
8.1.2. Near Caching
8.1.3. Inline Caching
Synchronous Inline Caching
8.2. Advanced Caching Configuration
8.3. Disable Caching
9. Data Access with GemfireTemplate
9.1. Explicitly Declared Regions
9.2. Entity-defined Regions
9.3. Caching-defined Regions
9.4. Native-defined Regions
9.5. Template Creation Rules
10. Spring Data Repositories
11. Function Implementations & Executions
11.1. Background
11.2. Applying Functions
12. Continuous Query
13. Data Serialization with PDX
13.1. SDG MappingPdxSerializer vs. GemFire/Geode’s ReflectionBasedAutoSerializer
14. Security
14.1. Authentication & Authorization
14.1.1. Auth for Servers
14.1.2. Auth for Clients
Non-Managed Auth for Clients
Managed Auth for Clients
14.2. Transport Layer Security using SSL
14.3. Securing Data at Rest
15. Spring Boot Actuator
15.1. Base HealthIndicators
15.1.1. GeodeCacheHealthIndicator
15.1.2. GeodeRegionsHealthIndicator
15.1.3. GeodeIndexesHealthIndicator
15.1.4. GeodeDiskStoresHealthIndicator
15.2. ClientCache HealthIndicators
15.2.1. GeodeContinuousQueriesHealthIndicator
15.2.2. GeodePoolsHealthIndicator
15.3. Peer Cache HealthIndicators
15.3.1. GeodeCacheServersHealthIndicator
15.3.2. GeodeAsyncEventQueuesHealthIndicator
15.3.3. GeodeGatewayReceiversHealthIndicator
15.3.4. GeodeGatewaySendersHealthIndicator
16. Spring Session
16.1. Configuration
16.2. Custom Configuration
16.2.1. Custom Configuration using Properties
16.2.2. Custom Configuration using a Configurer
16.3. Disabling Session State Caching
16.4. Using Spring Session with Pivotal Cloud Cache
17. Pivotal CloudFoundry
17.1. Running Spring Boot applications as a specific user
17.1.1. Overriding Authentication Auto-configuration
17.2. Targeting Specific Pivotal Cloud Cache Service Instances
17.3. Using Multiple Pivotal Cloud Cache Service Instances
17.4. Hybrid Pivotal CloudFoundry & Apache Geode Spring Boot Applications
17.4.1. Running PCFDev
17.4.2. Running an Apache Geode Cluster
17.4.3. Creating a User-Provided Service
17.4.4. Push & Bind a Spring Boot application
17.4.5. Running the Spring Boot application
17.5. Summary
18. Samples
19. Appendix
19.1. Auto-configuration vs. Annotation-based configuration
19.1.1. Background
19.1.2. Conventions
19.1.3. Overriding
Caches
Security
19.1.4. Extension
Caching
Continuous Query
Functions
PDX
Spring Data Repositories
19.1.5. Explicit Configuration
19.1.6. Summary
19.2. Configuration Metadata Reference
19.2.1. Spring Data Based Properties
19.2.2. Spring Session Based Properties
19.2.3. Apache Geode Properties
19.3. Disabling Auto-configuration
19.3.1. Complete Set of Auto-configuration Classes
19.4. Switch from Apache Geode to Pivotal Cloud Cache (a.k.a. Pivotal GemFire)
19.5. Running an Apache Geode or Pivotal GemFire cluster using Spring Boot from your IDE
19.6. Testing
19.7. Examples
19.8. References