Saturday 8 July 2017

Spring Boot - Learning made easy by simple application

I hope, below mentioned plain-vanilla application would help you to quickly get started with Spring Boot and few supporting technologies/tools. Additionally, you may experiment Docker, Docker Compose and Pivotal Cloud Foundry, if not yet!
I am not writing step by step instructions again here, because README talks a lot @ https://github.com/tirthalpatel/Learning-Spring/tree/master/gs-spring-boot/gs-spring-boot-app

Learning Objectives

Try following with Spring Boot & run app by deploying on local machine / using docker compose / using docker / to pivotal cloud foundry.
  • Spring Boot + Spring Web (MVC and REST) + Thymeleaf (Template engine)
  • Spring Boot + Swagger UI (easily visualize and interact with the API’s resources)
  • Spring Boot + Properties customization
  • Spring Boot + Spring Data JPA + H2 Database + FlywayDB (deal with RDBMS)
  • Spring Boot + Spring Data REST + HAL browser (easy to build hypermedia-driven REST web services)
  • Spring Boot + Spring Data Redis (publish and subscribe to messages sent via Redis)
  • Spring Boot + Production-ready features of Spring Boot Actuator
  • Spring Boot + Hawtio (a lightweight web console to monitor and manage application)
  • Spring Boot + Developer Tools (for automatic restart, livereload support..)
  • Spring Boot + Lombok (a java annotation library to reduce boilerplate code)
  • Spring Boot + Testing (JUnit, Hemcrest, AssertJ, Mockito, Spring Test)

How to run the application?

Refer README for instructions to build, deploy and run application using below options. You must need Redis server for option 1, 2 and 3. For option 4, you don't need to set up Redis explicitly, as you can leverage Redis service from Pivotal CF marketplace.
  1. Using maven on local machine
  2. Using Docker Compose
  3. Using Docker
  4. Deploying to Pivotal Cloud Foundry (Cloud PaaS)