Search our courses
Training

Rapid advancements in cloud-based software delivery and virtualization have caused many developers to question the wisdom of a “Big Server” approach to deploying web applications. Spring Boot is a technology stack that builds on the popular Spring Framework to allow Spring-based applications as stand-alone jar files that host their own web servers. This approach works nicely with deployment automation and rapid scaling.

Cloud-based, highly-distributed applications face additional challenges in supporting a dynamic environment – especially around configuration, service discovery, service resilience and monitoring.  Spring Cloud embraces and extends the popular suite of open source cloud tools published by Netflix (Eureka, Hystrix, Ribbon, etc).

We offer the best spring boot course! This Mastering Microservices with Spring Cloud and Spring Boot training course introduces Spring Boot, Spring Cloud and the Netflix OSS suite as a way of deploying highly resilient and scalable RESTful services and web applications.


OBJECTIVES

In this Mastering Microservices with Spring Cloud and Spring Boot training, attendees will learn how to:

  •     Create Spring Boot projects
  •     Use databases and JPA in Spring Boot
  •     Create RESTful services with Spring Boot
  •     Deploy services that use Netflix Eureka, Hystrix and Ribbon to create resilient and scalable services

Mastering Microservices with Spring Boot and Spring Cloud

Course Code

GTWMSBC

Duration

4 Days

Course Fee

POA

Accreditation

N/A

Target Audience

This course will be particularly useful for architects, technology managers, and development leaders implementing or considering Microservices and DevOps for their organization including the following:

  •         Architects
  •         Software Reliability Engineers
  •         Engineers
  •         App Dev Managers
  •         Java Developers
  •         Lead Application Developers

 

Attendee Requirements

  • Students should have experience with Java development

Expand all

Course Description

Rapid advancements in cloud-based software delivery and virtualization have caused many developers to question the wisdom of a “Big Server” approach to deploying web applications. Spring Boot is a technology stack that builds on the popular Spring Framework to allow Spring-based applications as stand-alone jar files that host their own web servers. This approach works nicely with deployment automation and rapid scaling.

Cloud-based, highly-distributed applications face additional challenges in supporting a dynamic environment – especially around configuration, service discovery, service resilience and monitoring.  Spring Cloud embraces and extends the popular suite of open source cloud tools published by Netflix (Eureka, Hystrix, Ribbon, etc).

We offer the best spring boot course! This Mastering Microservices with Spring Cloud and Spring Boot training course introduces Spring Boot, Spring Cloud and the Netflix OSS suite as a way of deploying highly resilient and scalable RESTful services and web applications.


OBJECTIVES

In this Mastering Microservices with Spring Cloud and Spring Boot training, attendees will learn how to:

  •     Create Spring Boot projects
  •     Use databases and JPA in Spring Boot
  •     Create RESTful services with Spring Boot
  •     Deploy services that use Netflix Eureka, Hystrix and Ribbon to create resilient and scalable services
Course Outline

Chapter 1. Introduction to the Spring Framework

  •     What is the Spring Framework?
  •     Spring Philosophies
  •     Why Spring?
  •     Spring Modules
  •     Requirements and Supported Environments
  •     Using Spring with Servers
  •     Role of Spring Container
  •     Spring Example
  •     Avoiding Dependency on Spring
  •     Additional Spring Projects/Frameworks

Chapter 2. Spring Annotation Configuration

  •     Spring Containers
  •     Annotation-based Spring Bean Definition
  •     Scanning for Annotation Components
  •     Defining Component Scope Using Annotations
  •     JSR-330 @Named Annotation
  •     JSR-330 @Scope
  •     Annotation-based Dependency Injection
  •     Wiring Bean using @Inject
  •     @Autowired – Constructor
  •     @Autowired – Field
  •     @Autowired – method
  •     @Autowired – Collection
  •     @Autowired – Maps
  •     @Autowired & @Qualifier with Constructors, Fields, and Methods
  •     @Autowired & Custom Qualifiers
  •     @Autowired & Simple Custom Qualifier Field
  •     @Autowired & Simple Custom Qualifier Method
  •     @Autowired & CustomAutowireConfigurer
  •     Dependency Injection Validation
  •     @Resource
  •     @PostConstruct and @PreDestroy

Chapter 3. Spring Framework Configuration

  •     Java @Configuration Classes
  •     Defining @Configuration Classes
  •     Loading @Configuration Classes
  •     Modularizing @Configuration Classes
  •     Qualifying @Bean Methods
  •     Trouble with Prototype Scope
  •     Configuration with Spring Expression Language
  •     Resolving Text Messages
  •     Spring Property Conversion
  •     Spring Converter Interface
  •     Using Custom Converters
  •     Spring PropertyEditors
  •     Registering Custom PropertyEditors

Chapter 4. Introduction to Spring Boot

  •     What is Spring Boot?
  •     Spring Boot Main Features
  •     Spring Boot on the PaaS
  •     Understanding Java Annotations
  •     Spring MVC Annotations
  •     Example of Spring MVC-based RESTful Web Service
  •     Spring Booting Your RESTful Web Service
  •     Spring Boot Skeletal Application Example
  •     Converting a Spring Boot Application to a WAR File
  •     Externalized Configuration
  •     Starters
  •     The ‘pom.xml’ File
  •     Spring Boot Maven Plugin
  •     HOWTO: Create a Spring Boot Application

Chapter 5. Spring MVC

  •     Spring MVC
  •     Spring Web Modules
  •     Spring MVC Components
  •     DispatcherServlet
  •     Template Engines
  •     Spring Boot MVC Example
  •     Spring MVC Mapping of Requests
  •     Advanced @RequestMapping
  •     Composed Request Mappings
  •     Spring MVC Annotation Controllers
  •     Controller Handler Method Parameters
  •     Controller Handler Method Return Types
  •     View Resolution
  •     Spring Boot Considerations

Chapter 6. Overview of Spring Boot Database Integration

  •     DAO Support in Spring
  •     Spring Data Access Modules
  •     Spring JDBC Module
  •     Spring ORM Module
  •     DataAccessException
  •     @Repository Annotation
  •     Using DataSources
  •     DAO Templates
  •     DAO Templates and Callbacks
  •     ORM Tool Support in Spring

Chapter 7. Using Spring with JPA or Hibernate

  •     Spring JPA
  •     Benefits of Using Spring with ORM
  •     Spring @Repository
  •     Using JPA with Spring
  •     Configure Spring Boot JPA EntityManagerFactory
  •     Application JPA Code
  •     “Classic” Spring ORM Usage
  •     Spring JpaTemplate
  •     Spring JpaCallback
  •     JpaTemplate Convenience Features
  •     Spring Boot Considerations
  •     Spring Data JPA Repositories

Chapter 8. Introduction to MongoDB

  •     MongoDB
  •     MongoDB Features
  •     MongoDB’s Logo
  •     Positioning of MongoDB
  •     MongoDB Applications
  •     MongoDB Data Model
  •     MongoDB Limitations
  •     MongoDB Use Cases
  •     MongoDB Query Language (QL)
  •     The CRUD Operations
  •     The
  •     find
  •     Method
  •     The
  •     findOne
  •     Method
  •     A MongoDB QL Example
  •     Data Inserts
  •     MongoDB vs Apache CouchDB

Chapter 9. Working with Data in MongoDB

  •     Reading Data in MongoDB
  •     The Query Interface
  •     Query Syntax is Driver-Specific
  •     Projections
  •     Query and Projection Operators
  •     MongoDB Query to SQL Select Comparison
  •     Cursors
  •     Cursor Expiration
  •     Writing Data in MongoDB
  •     An Insert Operation Example
  •     The Update Operation
  •     An Update Operation Example
  •     A Remove Operation Example
  •     Limiting Return Data
  •     Data Sorting
  •     Aggregating Data
  •     Aggregation Stages
  •     Accumulators
  •     An Example of an Aggregation Pipe-line
  •     Map-Reduce

 Chapter 10. Spring Data with MongoDB

  •     Why MongoDB?
  •     MongoDB in Spring Boot
  •     Pom.xml
  •     Application Properties
  •     MongoRepository
  •     Custom Query Methods
  •     Supported Query Keywords
  •     Complex Queries
  •     Create JavaBean for Data Type
  •     Using the Repository

Chapter 11. Spring REST Services

  •     Many Flavors of Services
  •     Understanding REST
  •     RESTful Services
  •     REST Resource Examples
  •     REST vs SOAP
  •     REST Services With Spring MVC
  •     Spring MVC @RequestMapping with REST
  •     Working With the Request Body and Response Body
  •     @RestController Annotation
  •     Implementing JAX-RS Services and Spring
  •     JAX-RS Annotations
  •     Java Clients Using RestTemplate
  •     RestTemplate Methods

Chapter 12. Spring Security

  •     Securing Web Applications with Spring Security 3.0
  •     Spring Security 3.0
  •     Authentication and Authorization
  •     Programmatic v Declarative Security
  •     Getting Spring Security from Maven
  •     Spring Security Configuration
  •     Spring Security Configuration Example
  •     Authentication Manager
  •     Using Database User Authentication
  •     LDAP Authentication

Chapter 13. Spring JMS

  •     Spring JMS
  •     JmsTemplate
  •     Connection and Destination
  •     JmsTemplate Configuration
  •     Transaction Management
  •     Example Transaction Configuration
  •     Producer Example
  •     Consumer Example
  •     Converting Messages
  •     Message Listener Containers
  •     Message-Driven POJO’s Async Receiver Example
  •     Message-Driven POJO’s Async Receiver Configuration
  •     Spring Boot Considerations

Chapter 14. Microservices

  •     What is a “Microservice”?
  •     One Helpful Analogy
  •     SOA – Microservices Relationship
  •     ESB – Microservices Relationship
  •     Traditional Monolithic Designs and Their Role
  •     Disadvantages of Monoliths
  •     Moving from a Legacy Monolith
  •     When Moving from a Legacy Monolith
  •     The Driving Forces Behind Microservices
  •     How Can Microservices Help You?
  •     The Microservices Architecture
  •     Utility Microservices at AWS
  •     Microservices Inter-connectivity
  •     The Data Exchange Interoperability Consideration
  •     Managing Microservices
  •     Implementing Microservices
  •     Embedding Databases in Java
  •     Microservice-Oriented Application Frameworks and Platforms

 Chapter 15. Spring Cloud Config

  •     The Spring Cloud Configuration Server
  •     Why Configuration Management is Important
  •     Configuration Management Challenges in Microservices
  •     Separation of Configuration from Code
  •     Configuration Service
  •     How the Configuration Service Works
  •     Cloud Config Server Properties File
  •     Git Integration
  •     Properties
  •     Configuration Client
  •     Sample Client Config File
  •     Sample Client Application
  •     Dynamic Property Updates – Server
  •     Dynamic Property Update – Client
  •     Dynamic Property Update – Execute

Chapter 16. Service Discovery with Netflix Eureka

  •     Service Discovery in Microservices
  •     Load Balancing in Microservices
  •     Netflix Eureka
  •     Eureka Architecture
  •     Communications in Eureka
  •     Time Lag
  •     Eureka Deployment
  •     Peer Communication Failure between Servers
  •     Eureka Server Configuration
  •     Eureka Client/Service
  •     Eureka Client Properties
  •     Spring Cloud DiscoveryClient Interface
  •     ServiceInstance JSON
  •     ServiceInstance Interface
  •     What about Services
  •     Eureka and the AWS Ecosystem

Chapter 17. Load-Balancing with Netflix Ribbon

  •     Load Balancing in Microservices
  •     Netflix Ribbon
  •     Server-side load balance
  •     Client-side Load Balance
  •     Architecture
  •     Load Balance Rules
  •     RoundRobinRule
  •     AvailabilityFilteringRule
  •     WeightedResponseTimeRule
  •     RandomRule
  •     ZoneAvoidanceRule
  •     IPing Interface (Failover)
  •     Using Ribbon
  •     YAML Configuration
  •     Configuration Class
  •     Client Class
  •     Client Class Implementation
  •     Integration with Eureka (Service Discovery)
  •     Using Ribbon in the Amazon AWS Cloud

Chapter 18. Application Hardening with Netflix Hystrix

  •     Netflix Hystrix
  •     Design Principles
  •     Design Principles (continued)
  •     Cascading Failures
  •     Bulkhead Pattern
  •     Circuit Breaker Pattern
  •     Thread Pooling
  •     Request Caching
  •     Request Collapsing
  •     Fail-Fast
  •     Fallback
  •     Using Hystrix
  •     Circuit Breaker Configuration
  •     Fallback Configuration
  •     Collapser Configuration
  •     Rest Controller and Handler
  •     Collapser Service (Part 1)
  •     How the Collapser Works
  •     Hystrix Monitor
  •     Enable Monitoring
  •     Turbine
  •     The Monitor
  •     Monitor details

Chapter 19. Edge Components with Netflix Zuul

  •     Zuul is the Gatekeeper
  •     Request Handling
  •     Filters
  •     Filter Architecture
  •     Filter Properties
  •     filterType()
  •     filterOrder()
  •     shouldFilter()
  •     Run()
  •     Cancel Request
  •     Dynamic Filter Loading
  •     Filter Communications
  •     Routing with Eureka and Ribbon

Chapter 20. Distributed Tracing with Zipkin

  •     Zipkin
  •     Zipkin Features
  •     Architecture
  •     The Collector
  •     Storage
  •     API
  •     GUI Console
  •     Zipkin Console Homepage
  •     View a Trace
  •     Trace Details
  •     Dependencies
  •     Dependency Details
  •     Zipkin in Spring Boot
  •     Zipkin Configuration

Lab Exercises

    Lab 1. A Simple RESTful API in Spring Boot
    Lab 2. Use the Spring Web MVC Web Framework under Spring Boot
    Lab 3. Use the Spring JDBCTemplate under Spring Boot
    Lab 4. Use the Spring Data JPA under Spring Boot
    Lab 5. Learning the MongoDB Lab Environment
    Lab 6. Spring Data with MongoDB
    Lab 7. Create a RESTful API with Spring Boot
    Lab 8. Create a RESTful Client with Spring Boot
    Lab 9. Enable Basic Security
    Lab 10. Use AMQP Messaging with Spring Boot
    Lab 11. Use Netflix Eureka for Service Discovery
    Lab 12. Use Netflix Ribbon for Client-Side Load Balancing
    Lab 13. Use Netflix Hystrix for the Circuit Breaker Pattern
    Lab 14. EdgeComponents with Zuul
    Lab 15. Distributed tracing with Zipkin
    Lab 16. Spring Boot Project

Learning Path
Ways to Attend
  • Attend a public course, if there is one available. Please check our schedule, or register your interest in joining a course in your area.
  • Private onsite Team training also available, please contact us to discuss. We can customise this course to suit your business requirements.

Private Team Training is available for this course

We deliver this course either on or off-site in various regions around the world, and can customise your delivery to suit your exact business needs. Talk to us about how we can fine-tune a course to suit your team's current skillset and ultimate learning objectives.

Private Team Training | Contact us

Technical ICT learning & mentoring services

Private Team Training

Our instructors are specialist consultants with vast real world experience and expertise allowing them to design and deliver client-focused courses for your organisation.

Learn more about our Private Team Training

What Our Clients Say

"Absolutely fantastic training. Thoroughly enjoyed it thanks to our highly enthusiastic tutor.  It wouldn't be an understatement to say that it was the best professional training that I have ever received."

 

Customised Linux with Networking

Live Online -  February 2022

 


“It was very positive. This course was 4 days but covered a semester worth of work if it was done in college. The labs were relevant and delegates were provided the lab/coursebook for further study and practice after the course finished. GuruTeam's course was excellent and provides a deeper understanding of the architecture and how it all works. The hands-on aspect was very helpful as it helped solidify the concepts as I went along."

 

Kubernetes Administration Certification - GTLFK

Live Online September 2024

 

 

 

“The Instructor was very knowledgeable, laid back and very approachable during the course. The environment setup was second to none.  Very easy to jump in and follow along with minimal pre-req setup."

Kubernetes Administration Certification - GTLFK

Onsite May 2024

 

“Very engaging and practical course so hope to be able to put the learning into practice.”

 

Being Agile in Business - GTBAB

Live Online September 2021

 

“Great instructor, who encouraged active participation. The breakout groups and exercises kept the group engaged and the content relevant to our own products”.

 

Site Reliability Engineering Foundation - GTDSRE

Live Online January 2022

 

 

 

"Intelligence is the ability to avoid doing work, yet
getting the work done"

Linus Torvalds, creator of Linux and GIT

Technical ICT learning & mentoring services

About GuruTeam

GuruTeam is a high-level ICT Learning, Mentoring and Consultancy services company. We specialise in delivering instructor-led on and off-site training in Blockchain, Linux, Cloud, Big Data, DevOps, Kubernetes, Agile, Software & Web Development technologies. View our Testimonials

Download our eBrochure
Our Accreditation Partners
  •  
  •  
  •  

 

Upcoming Courses

Kubernetes Administration

4th - 7th November 2024

 Live Online

 

Learn More

RUST PROGRAMMING

4th - 7th November 2024

Live Online

GMT +01:00  09:30 - 17:00 hrs

This course will help you understand what Rust applications look like, how to write Rust applications properly, and how to get the most out of the language and its libraries.

 

 

 

 

 

Learn More

INTRO TO PYTHON 3 

ADVANCED PYTHON 3

15th - 17th October 2024
29th - 31st October 2024

Live Online

   GMT +01:00  09:30 - 17:00 hrs

  Python is a powerful and 
  popular object-oriented 
  programming/scripting
 language with many high q
uality  libraries.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

Learn More

 GO LANG TRAINING

4th to 7th November 2024

Live Online      

GMT +01:00  09:30 - 17:00 hrs

This Go language programming training course will help you understand how Go works, and immediately be more productive. If you are building a team using Go, this will be a great opportunity to get your team on the same page and speaking the same language. Innovative lab exercises and code samples are provided to reinforce skills and quickly master the topics.

Learn More

Newsletter

Stay up to date, receive updates on scheduled dates, new courses, offers, and events.

Subscribe to our Newsletter