Mastering Microservices with Spring Boot and Spring Cloud Training

Pre-Requisites: Students should have experience with Java development


Key Features

  • Online live classroom available
  • Quality learning materials
  • Small Class Sizes
  • State of the Art Facility
  • Free Retakes
  • Instructor Led Classroom training
  • Certified Industry Experienced Teachers
  • 100% Job Placement assistance
  • 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

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 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.).

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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
  • Summary

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

What is the Objective of this training program?

This course “Mastering Microservices with Spring Boot and Spring Cloud Training” is designed to guide you to the latest cloud programming concepts in Spring Boot Technology stack. This training requires previous coding experience/Knowledge. We recommend you to undergo our module 1 – “Java 11” and module 2 – “Programming Java SOAP and REST Web Services – JBoss / Eclipse Training” of our “Java Professional” training program to strengthen your core Java and advanced Java coding skills. In this course we will provide you with the knowledge to mastering latest advancements in cloud-based software delivery and virtualization called the “Big Server” approach to deploying web applications, Microservices with Spring Boot and Spring Cloud Training. You will learn to create Spring Boot projects, use databases and JPA in Spring Boot, create RESTful services with Spring Boot and deploy services that use Netflix Eureka, Hystrix and Ribbon to develop resilient and scalable services.

What is the Spring Framework?

Spring Framework is an open-source application container for Java that supplies many useful features, such as Inversion of Control, Dependency Injection, abstract data access, transaction management, and more. Spring was initially introduced back in 2002 by Rod Johnson as a 30K lines of code framework accompanying his book “Expert One-on-One J2EE Design and Development”. The framework was initially known as “interface21” but was later renamed and released as an open-source project under the name “Spring”.

What is the Spring Boot?

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. All in all, Spring Boot is a project built on the top of the Spring framework. It provides a simpler and faster way to set up, configure, and run web-based and straightforward applications. In the Spring core framework, you need to configure all the things for yourself. Hence, you can have a lot of configuration files, such as XML descriptors. That’s one out of the main problems that Spring Boot solves for you. It smartly chooses your dependencies, auto-configures all the features you will want to use, and you can start your application with one click. Furthermore, it also simplifies the deployment process of your application.

What is Inversion of Control (IoC)?

One of Spring’s core features it the usage of the concept Inversion of Control (IoC). IoC is about inverting the flow of control that the traditional programming model used to have in terms of objects at the higher-level handling the creation and management of lower-level things life cycle. In the IoC programming model, higher-level objects prefer one or more instances of these dependencies from the calling object or external framework. IOC is also termed Dependency Injection, wherein the dependencies are injected appropriately, and, objects bother themselves solely with the program execution and not with the object creation.

Simply said Inversion of Control (IoC) and Dependency Injection (DI) patterns are all about removing dependencies from your code.

Why should I become a Java Professional?

Here are a few reasons:

1) Java is one of the most widely used programming languages. There is no denying Java’s popularity using more than nine million developers on seven billion devices worldwide. Despite being released over 20 years ago, Java has been at the top of the TIOBE index, the measure of popularity within programming languages, for the last decade. Job prospects for people with Java skills are excellent with roles available across many different sectors.

2) There is more to Java developing than coding. When you become a Java developer, your work is varied due to the many different tasks that Java developers oversee. From designing interfaces to creating and testing dynamic applications, Java developers involved in every development process stage.

3) Java development is collaborative. An advantage of being involved throughout the development process is that Java developers collaborate with other professionals, such as Web Designers, Web Developers and Software Engineers. Collaboration develops communication and other transferable skills, which help advance your career as an IT professional.

4) Java is used in real-world applications. From healthcare to financial services, Java is used across many different business sectors and popular websites such as Facebook, Amazon and eBay. So, as Java developer, it is likely that your work will benefit not just the company you work for but also many ordinary people in real-life scenarios.

What role do Java developers play in IT development?

Java developers create complex web-based applications. Some examples include animated drop-down menus, images that change as a mouse moves over them, and sounds that play when clicked. Java is used extensively on e-commerce sites to collect data and validate user information. It is the job of Java developers to use this scripting language to modify the design and functionality of websites as requested by their clients. Java developers may write programs themselves or revise existing applications. They also identify opportunities to fine-tune and optimize applications of java developed projects. Java developers will often test programs to verify that they work correctly. This responsibility includes resolving technical issues through debugging, research and investigation. Java developers will also often mentor and provide technical guidance and instruction to lower-level IT staff, assisting with specific problems requiring a broad knowledge of subject matter processing.

Technology in the IT world is constantly changing, so knowledge becomes outdated in a few years. Therefore, a love of learning is essential for Java developers. Good researching skills are also crucial because there will always be new technologies to learn about. Java developers typically work on a team, so being a team player is extremely important. Good communication skills are also a must because Java developers must communicate effectively with their team and with clients.

What will I be able to do after successfully finishing the program?

After completing the 3 modules of our Java Professional training program, you will be able to:

  • Utilize new Java features
  • Identify deprecated APIs and possible alternatives
  • Swap sub-optimal or tedious coding with convenience methods
  • Create a modular Java application
  • Create a custom runtime image
  • Build Multi-release JAR files
  • Design interfaces which implement methods
  • Process stream data using new convenience methods
  • Create a system architecture (the Architecture model) supporting the nonfunctional requirements (NFRs) and development constraints
  • Create a system design (the Solution model) supporting the functional requirements (FRs)
  • Develop web front-ends using Servlets, Java Server Pages, and Java Server
  • 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

Are Java Professionals in Demand?

As for the demand for Java developers, it stays at a very high-level year after year. According to a recent report by analytical company Burning Glass, Java Developer is one of the most common tech occupations in the U.S., with a total number of open job postings nearly reaching 4000 in February 2020 in the U.S. alone.

**Java-related job postings on Collabera increased 80 percent between 2017 and 2018, from 3,469 to 6,243 — impressive for a programming language that’s been around for nearly 25 years. ­

Who are the instructors at Global IT?

All the instructors at Global IT are practitioners from the Industry with minimum 8-10 years of relevant IT experience. They are subject matter experts and are passionate for providing an awesome learning experience to the participants.

What is the role of Java developer?

A Java Developer is responsible for the design, development, and management of Java-based applications. Because Java is used so widely, particularly by large organizations, the daily roles vary widely, but can include owning a particular application or working on several at one time. In many cases, a Java developer’s job description goes well beyond mere computer programming. Many roles require that Java developers embrace taking part in full software development lifecycles and strive to improve the overall product by researching alternative ways and technologies to achieve the overall goal.

  • Designing, implementing, and maintaining Java applications that are often high-volume and low-latency, required for mission-critical systems
  • Delivering high availability and performance
  • Contributing in all phases of the development lifecycle
  • Writing well-designed, efficient, and testable code
  • Conducting software analysis, programming, testing, and debugging
  • Managing Java and Java EE application development
  • Ensuring designs comply with specifications
  • Preparing and producing releases of software components
  • Transforming requirements into stipulations
  • Support continuous improvement
  • Investigating alternatives and technologies
  • Presenting for architectural review

What are a few possible career paths and opportunities for Java Professional?

There is a good demand for java programmers all over the world. The job roles on completing our java professional course include Java Developer, Java Software Developer / Programmer, Java Programmer, Java Web Software Developer, Web developer, Application Developer, Web Programmer and EJB Programmer among others.

Does Global IT offer job assistance?

Global IT actively provides 100% Job placement assistance to all learners who have completed the training. For this, we are exclusively tied-up with top employers/ recruiting partners. We also help you with the job interview and résumé preparation part as well.

Will the Job Assistance Program Guarantee Me A Job?

In our Job Assistance program, we will be helping you land in your dream job by sharing your resume to potential recruiters and assisting you with resume building, preparing you for interview questions. GIT’s training should not be regarded either as a job placement service or as a guarantee for employment. The entire employment process will take part between the learner and the recruiter companies directly, and the final selection is always dependent on the recruiter.

What are the prerequisites for getting enrolled in this training course?

Be competent in creating programs in any programming language. Understand object-oriented principles Basic understanding of database concepts and SQL syntax.

How are the jobs for Java Professional in general?

An entry-level Java Developer with less than 1-year experience can expect to earn an average total compensation (includes tips, bonus, and overtime pay) of $59,798 based on 218 salaries. An early career Java Developer with 1-4 years of experience earns an average total compensation of $71,311 based on 984 salaries. A mid-career Java Developer with 5-9 years of experience earns an average total compensation of $83,967 based on 569 salaries. An experienced Java Developer with 10-19 years of experience earns an average total compensation of $98,411 based on 228 salaries. In their late-career (20 years and higher), employees earn an average total compensation of $102,572.

Popular Employer Salaries for Java Developer-

J.P. Morgan Chase & Co. (JPMCC) $93k
The Vanguard Group $62k
InfoSys Limited $73k
NTT Data Corporation $73k
Cognizant Technology Solutions Corp $66k
Tata Consultancy Services Limited $74k
Verizon Communications, Inc. $90k
Leidos $81k

Course Number : JAVA-5-0300

Duration : 40 hours

1 Step 1

Request Information!

Who you are?

By submitting this form, you are giving your express written consent for Global Information Technology to contact you regarding our programs and services using email, telephone or text.  This consent is not required to purchase goods/services, and you may always call us directly at 1-866-464-4846.

reCaptcha v3
FormCraft - WordPress form builder