In this article, let's take a look at the roadmap to learn Spring Boot and Microservices. This roadmap is for beginners who want to learn to build Restful web services and microservices using Spring Boot.
Check out my top Udemy course: Building Microservices with Spring Boot and Spring Cloud
Note: This Roadmap is my personal opinion as per my experience on Spring Boot and Microservices but there could be other opinions by different developers.
Spring Boot is a very popular Java framework for building Restful web services and microservices.
Nowadays MicroServices is the hot buzzword in software development and many organizations prefer building their enterprise applications using MicroServices architecture. In the Java community, SpringBoot is the most widely used framework for building both monoliths and microservices.YouTube Video
Spring Boot and Microservices Roadmap
1. Learn Spring Core
I have seen many times that people (especially beginners) directly jump on to SpringBoot without having any prior Spring knowledge and everything looks magical. It works great as long as go with the defaults and the moment you need to customize it, it feels complex. So I highly recommend that before learning Spring Boot directly, you can learn Spring core fundamentals such as:- Dependency injection
- Spring IOC
- Spring AOP
- Spring beans
- Spring bean life cycle
- Spring configuration styles (XML, Java-based, and annotation-based)
- Learn important annotations
2. Learn Spring Boot
Learn Spring Boot features
- Spring Boot starters
- Spring Boot autoconfiguration
- Elegant configuration management
- Spring Boot Actuator
- Easy-to-use embedded servlet container support
2.2 Learn Building REST APIs
- GET
- POST
- PUT
- DELETE
2.3 Repository/DAO Layer
Next, learn how to build a repository/DAO layer in the spring boot application.
- For JPA - Spring Data JPA
- For JDBC - Spring Data JDBC
- For MongoDB - Spring Data MongoDB
2.4 Spring MVC Web Application
2.6 Testing Spring Boot Application
Learn the JUnit framework and Mokito for unit testing in Java. As a Java programmer, you should have good knowledge of testing your core logic using the JUnit framework.
Spring boot provides @SpringBootTest and @DataJpaTest annotations to test controllers and repositories.
To learn and master the JUnit framework at JUnit tutorials
Check out my popular Udemy course to learn Spring boot application testing.
3. Databases
As a Java programmer, you should have good knowledge of databases.
Here are the commonly used relational databases and No SQL databases:
3.1 RDBMS:
- MySQL
- PostgreSQL
- MS-SQL server
- Oracle
3.2 No SQL Databases:
- MongoDB
- Cassandra
4. Microservices
Spring Boot is the most popular and widely used Java framework for building MicroServices. Spring Boot makes it easy to create standalone, production-grade Spring-based Applications that you can “just run.”
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state).
4.1 Spring Cloud Modules
Following are just a few of the Spring Cloud modules that can be used to address distributed application concerns:Spring Cloud Zuul Proxy:
Spring Cloud Config Server:
Service Registry and Discovery:
Circuit Breaker:
Spring Cloud Data Streams:
These days we may need to work with huge volumes of data streams using Kafka or Spark etc. Spring Cloud Data Streams provides higher-level abstractions to use those frameworks in an easier manner.Spring Cloud Security:
Distributed Tracing:
4.2 MQ (Message Queues) - RabbitMQ or Apache Kafka
Spring Cloud Stream is a framework built on top of Spring Boot and Spring Integration that helps in creating event-driven or message-driven microservices.Communication between endpoints is driven by messaging-middleware parties like RabbitMQ or Apache Kafka. Services communicate by publishing domain events via these endpoints or channels.
4.3 DevOps
Docker and Kubernetes
Clouds
- AWS
- GCP
- Azure
Comments
Post a Comment
Leave Comment