Introduction and Prerequisites
Hey guys, welcome to Concept and Coding, and this is Shaan. And today I'm going to share the roadmap of Spring Boot with you guys. And these are all the topics which I have come up with based on my experience, and I have covered microservices also in that, right? Spring Boot microservices using Spring Boot. They are a lot of topics and yeah, we will go through one by one. But yes, after LLD, HLD, and Java, this is the next playlist I'm going to work on.
Okay, so one thing before I tell you the topics which I'm planning to cover, the prerequisite is Java. Like Spring Boot, as you know, it's a kind of a Java framework. Like if you don't know Java, then I would say that first go through the Java playlist and then come back to this topics.
Okay, so first is Introduction to Spring Boot. Like in this part where I would be telling like why the Spring Boot is required, what problem it solves, what are its features, advantages. So at least we will get an introductory like, okay, we are going to use Spring, but why? What problem it does solve? Then we will set up a basic Spring Boot project, and I will also try to cover the layered architecture of Spring Boot.
After that, I have put like understanding of Maven pom.xml or Gradle, right? Because this is very much we are going, a lot of dependencies we are going to add. If you don't know either Gradle or Maven, then I think it's better I will pick either Maven or Gradle, and at least I'll cover the structure of XML file once, Maven pom.xml.
Essential Spring Boot Annotations
Then Spring Boot annotations. So these are most of the annotations which we use day-to-day. And based on my 8 to 9 years of experience in total, Spring Boot, Java, Spring Boot, these are the most common annotations which we use, right? There can be others also, that's why I put an asterisk, right? So we will start with this. If any other important annotation is left, we will also add it.
Core Features: Data, APIs, Security, and Caching
Then we will understand about the dependency injections and beans. We will also cover the Spring Boot data access, like where it connects to the database, right? So we will also cover this part. We will create a REST APIs with a Spring Boot, right? We will also cover the Spring Boot security, authentication and authorization. So I have kept this part.
Then logging part I have kept, like during when we create a project, we have to do a lot of loggings, right? So Spring Boot also provide that functionality, so how to use it. So that's one of the topic. Exception handling. We have already seen exception handling in Java, right? So how in Spring Boot we do it, that's also one of the good topic to cover. Spring Boot caching, another very important. Like @EnableCaching, there are certain annotations with this, right? So you will find @EnableCaching. So there are certain very important topics, right? This is also an important topic which we will cover.
Advanced Topics: Interceptors, Scheduling, and Testing
Interceptor. We use a lot, many companies use a lot, Interceptor, right? So generally Interceptor is like pre-work. Whatever the task you want to perform and if you want certain pre-work and post-work after that task, then Interceptor comes into the picture. Spring Boot provides a way to add the Interceptor. A Spring Boot scheduling, if you want to schedule a particular task, how to do that? We have, we can do that easily using a Spring Boot. So I think I can tell you scheduling much more in depth because I have created a very good project into the scheduling part.
Then Spring Boot unit testing. So I have picked Mockito, so we will cover with the Mockito, Spring Boot unit testing.
Microservices: Introduction & Service Discovery with Eureka
Now, microservices topics with Spring Boot. In your company you might be using this or maybe some internal tools but the concept would be same. Okay, so what I'm planning to cover which is which I think is important is: first thing is Introduction to microservices. So one should understand what is microservices, right? So we will discuss about microservices.
Second part, Service Discovery using Eureka. So what is this Eureka microservice registering? So this is a very important part, you know, right? Each microservices, there can be multiple instances, right? And let's say, let's say this is microservices one, there are 100 instances, and this is your application. This is your application, you want to connect to this microservice. Now which instance to connect? Right? That is what helps a Service Discovery using Eureka. So each microservice registering happens. Very important piece we will cover.
Distributed Tracing with Sleuth and Zipkin
Another is tracing. So what generally happen is you have microservices one, microservices two, microservices three, and then say request comes here, then it goes here, then it goes here. So let's say there are so many microservices and request goes through multiple microservices. So what does happen is that we have to trace but let's say if any issue comes here, so right, so how to trace this request? So that's where this Sleuth and Zipkin helps.
So what does happen, it, the Sleuth will attach the trace ID with the request. So it will provide certain trace ID 1, 2, 3, 4, 5 something, right? So wherever the microservice goes, wherever the logging they will do, the logging, it will go against this trace ID. And Zipkin would provide you, help you to visualize the microservices level logging using this trace ID. So it's again a very important part, but just wanted to tell you what this tracing the request means, what we have written here.
Configuration Management: Profiles and Cloud Config
Then another is a Spring Boot profile. So what generally happen is, you might be working, right? So you want different properties of QA, production, sandbox, right? So that's called profiling. We have different QA environment, production environment, sandbox environment. So and sometime in the code also, you have to say that okay, if it is a QA environment, do this. So that is known as Spring Boot profiles. So we will see that also.
Spring Cloud Config Server, so it's a configuration management. So what generally happen is, let's say you have three microservices: microservices one, microservices two, microservices three. Each microservices has their application.properties, application.properties, application.properties. So here it can store the config for this microservice, it can store a config for this. But what Cloud Config says is that we can have one component where we can have a config, but that is common for all the microservices. That's why it is known as centralized config server also. But yeah, this is also something sometimes is required so that's why I've kept it here under the microservices part.
Microservice Communication Patterns
Communication between different microservices, sync and async, where I have put the messaging services. So how to set up a Kafka and using a Spring Boot. So that's where we will, like if two microservices have to communicate with each other, how they can do.
API gateways, right? So we will write REST APIs, right? So API Gateway you can say that the centralized server where all the request comes and from there it will goes to a different microservices, right?
Circuit breaker, again important. Let's say that you have microservices one, you are connected to microservices two. Let's say if this microservices two is down and you keep on calling, calling, calling, right? So sometimes your requirement is that okay, if this is down, then handle this. Okay? So that is can be done through circuit breaker. So circuit breaker can be open, circuit breaker can be, a circuit breaker can be closed, right? If it is closed, it goes to a fallback model. Okay, so this is also important. All companies I can tell you this is using, right?
CQRS, again, an important and Spring Boot helps to implement this: Command Query Responsibility Segregation, where the write queries and the read queries can be different. Right? So very important part.
Deployment with Docker and Project Overview
And the last which I have kept is the deployment and containerization. Right? Whatever the project we're going to build, how to create an executable JAR out of it, how to deploy it to a Docker container. So that will be under your microservices topics which I can think of.
And finally we will build a project, any small project. But currently in my top of head, the project which I'm thinking would be something related to coupons, but maybe let's see that. But first we understand this topics and then we'll create a project of it.
Conclusion and Roadmap Flexibility
Okay, so this is all the topics which I have written and just, this is just a heads-up that these are the initial topics which I have come up with based on my experience. So I might update this list as and when required. Uh, if I missed anything, I will add it. And if I see that if something is duplicate or not required, I might update it. So this is the Spring Boot uh, covering from totally basics and also a lot of advanced topics are also there in that. If you think that if I have missed anything, please ping me in the comment section and I will see that if I can add it into what sequence and if it is really important. Thank you. Thank you team. Bye.