Spring Boot and Spring Cloud

Course Number:

Audience:

Course Duration:
5 Days

Prerequisites:

All attendees must be comfortable programming in Java and have a basic understanding of Spring Dependency Injection using the Spring @Autowired annotation or the javax @Inject annotation. Spring Java Configuration experience is helpful but not required.

Course Objectives:
  • Use Spring Boot to build standalone web applications and RESTful services
  • Understand the Configuration techniques that Spring Boot Provides
  • Build Spring boot based Microservices for Json and XML data exchange
  • Monitor services using the Prometheus Actuator
  • Understand the major components of Netflix OSS
  • Register services with a Eureka Service
  • Implement “client” load balancing with Ribbon to Eureka managed Services
  • Create fault tolerant services with Hystrix callbacks
  • Filter requests to your Microservices using Zuul
  • Create producer and Consumer services using Kafka and Zookeeper
  • Define Feign clients to your services
Course Outline:

Introduction to Spring Boot

  • What is Spring Boot?
  • Spring starter Maven Dependencies
  • Understanding @SpringBootApplication
  • Example of Spring MVC-based RESTful Web Service
  • Project Structure
  • Externalized Configuration application.properties and YAML
  • @ConfigurationPropetrties
    • Type Safe Properties
    • JSR303 Validation of Properties
    • Spring Environment Object
    • @Value vs @ConfigurationProperties
  • Logging

Actuators

  • Exposing Information about your services
  • Customize Health and Info Endpoints
  • Custom Metrics and Custom Actuator
  • Prometheus Monitoring

Building Web Applications

  • Controllers and ModelAttributes
  • Template Views
  • Using Embedded and External Databases
  • Spring Boot Initializers and Command Line Runners
  • Active Profiles
  • Form Submissions

REST Services

  • What is REST?
  • Restful Controllers
  • JSON and XML Data Exchange
  • Content Negotiation
  • Angular JS Accessing your Services

Java Clients using RestTemplate

  • ResponseEntity
  • Headers
  • Status codes
  • RequestEntity
  • Posting Json to a Service

Persistence with JPA Repositories

  • JPA, EntityManagers, Entity Classes, Annotation mappings
  • Spring JPA Data, CrudRepository, PagingAndSortingRepository
  • Spring Data Rest, Exposing Databases as Endpoints
  • HATEOAS Json
  • @Projections and Excerpts
    • Restrict the data sent back to the client

Introduction to Microservices

  • What are Microservices?
  • Decentralized Governance, Scalability, Fault Tolerance
  • Cloud Computing
  • Spring Cloud
  • Service and Client Discovery
  • Netflix OSS

Spring Cloud and Netflix OSS

  • Where are my Services?
    • Using Service Discovery
    • Eureka Servers and Clients
  • Scale Services
    • Load Balancing with Ribbon using Service Discovery
    • A LoadBalanced RestTemplat9e
    • Load Balancing with Ribbon without Service Discovery
  • Circuit Breaker, when services fail
    • Hystrix
    • Callbacks
  • Gateway/Edge Services – Providing an API
    • Zuul services
    • Filtering the Request and Response
  • Create Feign Clients to your Services
  • Event Driven Services or Sagas
    • Keeping Services synchronized with each other
    • Creating Message Queues with Zookeeper and Kafka
      • Producers and Consumers

Docker Images and Containers

  • Orchestration and Workflow
Share on facebook
Share on twitter
Share on linkedin
Share on email

Related Posts

About Us

IT Training, Agile Ways of Working and High Impact Talent Development Strategies

Let Us Come to You!

Classes recently delivered in: Atlanta, Boston, Chicago, Columbus, Dallas, Detroit, Indianapolis, Jerusalem, London, Milan, New York, Palo Alto, Phoenix, Pittsburgh, Portland, Raleigh, San Antonio, San Diego, San Francisco, San Jose, Seattle, Springfield, Mass., St. Louis, Tampa and more!