:spring-docs: https://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/ :sbdg-docs: https://docs.spring.io/spring-boot-data-geode-build/current/reference/html5/ :sbdg-javadoc: https://docs.spring.io/spring-boot-data-geode-build/current/api/ :geode-javadoc: https://geode.apache.org/releases/latest/javadoc :geode-name: Apache Geode :gemfire-name: VMware Tanzu GemFire image:https://api.travis-ci.org/spring-projects/spring-boot-data-geode.svg?branch=master["Build Status", link="https://travis-ci.org/spring-projects/spring-boot-data-geode"] [[about]] == Spring Boot for {geode-name} _Spring Boot for {geode-name}_ extends https://projects.spring.io/spring-boot/[_Spring Boot_] with _auto-configuration_ support as well as other _convention & configuration_ features to simplify the development of _Spring_ applications using https://geode.apache.org/[{geode-name}] in a _Spring_ context. This project builds on https://spring.io/projects/spring-boot[Spring Boot] along with https://github.com/spring-projects/spring-data-geode[_Spring Data for {geode-name}_] (SDG), https://github.com/spring-projects/spring-session-data-geode[_Spring Session for {geode-name}_] (SSDG) and https://github.com/spring-projects/spring-test-data-geode[_Spring Test for {geode-name}_] (STDG). [[project-goals]] === Project Goals This project adds _Spring Boot_ **auto-configuration** and *actuator* support for https://geode.apache.org/[{geode-name}]. Among other things, this project builds on https://projects.spring.io/spring-boot/[_Spring Boot_] as well as https://projects.spring.io/spring-data-geode/[_Spring Data for {geode-name}_] (SDG) and additionally offers... 1. _Auto-configures_ an _{geode-name}_ {geode-javadoc}/org/apache/geode/cache/client/ClientCache.html[ClientCache] instance automatically when _Spring Data for {geode-name}_ (SDG) is on the application's CLASSPATH. 2. _Auto-configures_ _{geode-name}_ as a _caching provider_ in {spring-docs}#cache[_Spring's Cache Abstraction_] when _Spring Data for {geode-name}_ (SDG) is on the application's CLASSPATH to solve caching uses cases. 3. _Auto-configures_ _Spring Data for {geode-name}_ (SDG) {sbdg-docs}#geode-repositories[Repositories] when _Spring Data for {geode-name}_ (SDG) is on the application's CLASSPATH and _Spring Boot_ detects SDG _Repositories_ in your _Spring Boot_ application to solve persistent use cases. 4. _Auto-configures_ _{geode-name}_ {sbdg-docs}#geode-functions[Functions] when _Spring Data for {geode-name}_ (SDG) is on the application's CLASSPATH and _Spring Boot_ auto-detects SDG Function implementations or executions to solve your distributed compute problems. 5. _Auto-configures_ _{geode-name}_ {sbdg-docs}#geode-continuous-query[CQ] when _Spring Data for {geode-name}_ (SDG) is on the application's CLASSPATH and _Spring Boot_ auto-detects SDG CQ query declarations on application components to solve real-time event stream processing use cases. 6. _Auto-configures_ _{geode-name} as a {sbdg-docs}#geode-session[HTTP Session state management provider] when _Spring Session for {geode-name}_ (SSDG) is on the application's CLASSPATH. 7. _Auto-configures_ _{geode-name}_ {sbdg-docs}#geode-security[Security], both {sbdg-docs}#geode-security-auth[Authentication & Authorization (Auth)] as well as {sbdg-docs}#geode-security-ssl[Transport Layer Security (TLS) using SSL]. 8. Provides additional support for _Spring Boot_ and _Spring Data for {geode-name}_ applications deployed to {sbdg-docs}#cloudfoundry[VMware Tanzu Application Service (TAS)] using {gemfire-name} for VMs. This, along with many other benefits, are provided by this project. [[documentation]] === Documentation .Example {geode-name} Applications using Spring Boot |=== | Version | Reference Documentation | Javadoc | Samples | `current` | {sbdg-docs}[Ref Docs] | {sbdg-javadoc}[Javadoc] | {sbdg-docs}#geode-samples[Samples] | `1.0.1.RELEASE` | https://docs.spring.io/spring-boot-data-geode-build/1.0.x/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.0.x/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.0.x/reference/html5/#geode-samples[Samples] | `1.0.2.BUILD-SNAPSHOT`| https://docs.spring.io/spring-boot-data-geode-build/1.0.x-SNAPSHOT/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.0.x-SNAPSHOT/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.0.x-SNAPSHOT/reference/html5/#geode-samples[Samples] | `1.1.11.RELEASE` | https://docs.spring.io/spring-boot-data-geode-build/1.1.x/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.1.x/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.1.x/reference/html5/#geode-samples[Samples] | `1.1.12.BUILD-SNAPSHOT`| https://docs.spring.io/spring-boot-data-geode-build/1.1.x-SNAPSHOT/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.1.x-SNAPSHOT/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.1.x-SNAPSHOT/reference/html5/#geode-samples[Samples] | `1.2.11.RELEASE`| https://docs.spring.io/spring-boot-data-geode-build/1.2.x/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.2.x/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.2.x/reference/html5/#geode-samples[Samples] | `1.2.12.BUILD-SNAPSHOT`| https://docs.spring.io/spring-boot-data-geode-build/1.2.x-SNAPSHOT/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.2.x-SNAPSHOT/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.2.x-SNAPSHOT/reference/html5/#geode-samples[Samples] | `1.3.6.RELEASE`| https://docs.spring.io/spring-boot-data-geode-build/1.3.x/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.3.x/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.3.x/reference/html5/#geode-samples[Samples] | `1.3.7.BUILD-SNAPSHOT`| https://docs.spring.io/spring-boot-data-geode-build/1.3.x-SNAPSHOT/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.3.x-SNAPSHOT/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.3.x-SNAPSHOT/reference/html5/#geode-samples[Samples] | `1.4.0-RC1`| https://docs.spring.io/spring-boot-data-geode-build/1.4.x/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.4.x/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.4.x/reference/html5/#geode-samples[Samples] | `1.4.0-SNAPSHOT`| https://docs.spring.io/spring-boot-data-geode-build/1.4.x-SNAPSHOT/reference/html5/[Ref Docs] | https://docs.spring.io/spring-boot-data-geode-build/1.4.x-SNAPSHOT/api/[Javadoc] | https://docs.spring.io/spring-boot-data-geode-build/1.4.x-SNAPSHOT/reference/html5/#geode-samples[Samples] |=== [[examples]] === Examples The single, most relevant "_source of truth_" on how to get started quickly and effectively, using Spring Boot for {geode-name} (SBDG) to solve problems, is to start with the {sbdg-docs}#geode-samples[Samples]. There, you will find different examples with documentation and code showing you how to use SBDG to appropriately handle specific application concerns, like Caching. You can find an example of using SBDG in the Pivotal Cloud Cache (PCC) https://github.com/pivotal-cf/PCC-Sample-App-PizzaStore[Pizza Store] GitHub repository, which is a Spring Boot, {geode-name} `ClientCache` application that connects to PCC when the app is deployed to PCF. The https://github.com/jxblum/contacts-application/tree/master/boot-example[boot-example] found in the _Contacts Application Reference Implementation_ for _Spring Data for {geode-name}_ (SDG) uses SBDG to manage Books in a _System of Record_ Use Case. Then, there is a series of examples that walks a user through a series of steps starting by building a simple, Spring Boot client application using the {geode-name} API only. Next, the app is rebuilt using Spring Data for {geode-name} (SDG) to show the simplifications that SDG affords you as a developer. Finally, the app is rebuilt once more using SBDG to demonstrate the power of {geode-name} when combined with Spring Boot. The example can be found in the https://github.com/kohlmu-pivotal/PCCDemo[PCCDemo] GitHub repository. Each app can be deployed to PCF and bound to a Pivotal Cloud Cache (PCC) service instance. With SBDG, little to no code or configuration changes are necessary to run the app locally and then later deploy the same app to a managed environment like PCF. It just works! Finally, the https://github.com/jxblum/temperature-service/tree/using-spring-boot[Temperature Service] example is an _Internet of Things_ (IoT) and _Event Stream Processing_ (ESP) Use Case that manages Temperature Sensors and Monitors and uses SBDG to make the application configuration and implementation as simple as can be. Overtime, we will be adding even more relevant and practical examples, so please keep checking back. [[spring-boot-project-site]] == Spring Boot Project Site You can find the documentation, issue management, support, samples, and guides for using _Spring Boot_ at https://projects.spring.io/spring-boot/ [[code-of-conduct]] == Code of Conduct Please see our https://github.com/spring-projects/.github/blob/master/CODE_OF_CONDUCT.md[code of conduct] [[report-security-vulnerability]] == Reporting Security Vulnerabilities Please see our https://github.com/spring-projects/spring-boot-data-geode/security/policy[Security policy]. [[license]] == License _Spring Boot_ and _Spring Boot for {geode-name}_ is Open Source Software released under the https://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].