What is going on guys. Assalamualaikum. Welcome to Amigoscode. In this video, I want to give you the road map that you need in order to be confident when it comes to work with Spring boot. I think two weeks ago I've done a video on how to master Java. So it was a very similar video, and one of you guys requested me to record a similar video for Spring book. So this is it. If you go to my channel, go ahead and subscribe, give me a thumbs up so I can keep on recording these videos. So literally take a second and give me a thumbs up so that I can keep on recording these videos to you guys. A lot of my students have benefited from these videos video. Also, a bunch of my students have managed to secure jobs based on these videos and also the courses that I provide on my website. So also, if you know, a part of the private Facebook group and discord over 300 people combined, and I would love to see you there without further Ado, let's click off this video. About two weeks ago, I've recorded the Java road map, and basically this is an extension of it. So right here we have frameworks, and I've mentioned that we have Quarkus Play and Spring. Spring is by far the most popular, and it's the one that you should really be focusing on. Now let me go through one by one and then basically dig into these other concepts which are really important. So the first one, which I feel like it's one of the most important ones, is to read the documentation. Sometimes a lot of people say, how do I know all of this stuff? How can I teach Spring Boots so well? And that's because I always read the documentation. So if I'm learning something new, I always like the first place is to check the documentation. Nothing can go wrong with the documentation. And also it's a skill as a software engineer that you need to have because documentation is so important. So just imagine all of these people are building software and they want you to use it. So part of a framework such as Spring Boot, they have to have really good documentation in order for developers like yourself and myself take advantage of it. So documentation is really important. And this is where pretty much learn everything about Spring and Spring Boot. Then right here we have Supreme Core. So inside we have a couple of things. But here, for example, I've mentioned configuration. So this is really important. You understand how configuration works. So setting up your database, for example, or having different configurations based of an environment. So development, testing, pre prod, prod, staging. On all of that stuff, you should be aware of how to use configuration. And in the spring world, they call it profiles. Then we have Spring MVC. So this is where you're going to be able to write your Restful API. So here you have web service. So really just learn one or the other. So I'll say Tom, Cat or Jerry. Those are really popular web service that you can use within Spring. And here I've got Http. So just understand what I get requested post, let and put and just have in general the understanding of Http, right. How it works. Then here. So spring rest dogs. So basically, if you expose or if you are writing APIs, then you should be producing documentation. And this is what this is for. Then here I've got dependency injection. So dependency injection is really important because it will help you to write code that you can easily test. And I've done a video on dependence injection explaining what it is and the benefits, and you should definitely check it out. Then here I've got available annotations. The many to be honest, you just need to know the core ones and you will be good to go. Then here we have scheduling. So for example, if you want to execute a piece of code, for example, every five minutes or ten minutes, for example, so you can think of maybe someone has registered to your system, and then after five minutes you want to and then basically you want to send them an email. So you could that with scheduling, then moving on to security right here. So security is a big area, which I think was almost three years ago. I actually launch a course on spring security, teaching form, authentication, Basic, Auth, JWT, authentication and authorization. So there's a course specifically for spring security. It's about 4 hours long, and it will teach you all of this. So still on to you guys been requesting me to record it, and I'm actually planning to record a course on a two year. So just let me know whether you are interested and I'll make it happen as soon as possible. Then right here we have Spring Boot. So basically right here. So this side right here. So this is like the Spring Framework and what it has to offer right here. So the Spring framework, and then we have security, which is important for you to secure your applications. Then Spring Boot Basic basically makes it super easy for you to build microservices. Right. So microservices is really what you should be aiming for when working with Spring Boot, and you can learn about microservices, Kubernetes, and all that stuff. I've got a course which I've launched recently on my website, and you can learn about microservices with Kubernetes. But in here, let's first focus on testing. So testing is one of those areas which I feel is really, really important for you to have a full understanding. Right. Because there's no way that you're going to deploy application to real users without having tests. So understand. For example, the annotation is available at JPA test Mark MVC for integration tests, testing your services. Mocking and basically just have a solid foundation on testing and spring boot. They give you a bunch of helper annotations and methods that allow you to easily test your micro services. So then in here, let's basically let's speak, for example, here. Right. So when you write a backend application or a micro service, in this case, you need to pick a database. Now, this is super important because the database is basically the back end. Right. So you need to store data. So in here I would say SQL. So SQL or no SQL, you should have an understanding between those. But I would tell you or I would recommend you to choose SQL because that will teach you a bunch of other things. And then once you master SQL, no SQL be, you know, much easier for you because you have core concepts covered in SQL. So for example, pick a database Postgres or MySQL these are really, really popular for no SQL. Mongo is by far one of the most popular ones, but within SQL, you got things such as queries, joins, indexes, transactions, locking. So all of that, it's important for you to write solid backend applications. Also, database base design. You need to know how to model your database or how to model your application relationships. One to one, one to many, and all of that stuff. Right. Then also in here I've got transactions or actually transactions. This is a duplicate. So this should actually go. So let me just remove. So right here, it's transactions. So then we have Hibernate. So Hibernate really, it's like an or and basically allows you to take your Java classes and map them directly into the database. But I would recommend you to use it mainly for really small micro services as soon as the application is big and you have a bunch of queries and joins, then don't use it. So I don't recommend it, but still useful for you to know how it works. So again, understand, for example, how transactions work. So you've got a bunch of annotations their relationships. So at one too many, at one to one, many, too many, and more important to entity lifecycle. So this is really important because then if you want to use spring Data, which is a bunch of helper classes that allows you to interact with databases, then you have something called in here. So spring Data JPA. Right. So Spring JTA PA, basically, it makes it easier to work with Hibernate. And it's by far what people will use when building microservices or actually small microservices where there is too many relationships going on. Right. So I've got a course right here, which is, I think is one of the most popular courses on my website that teaches you everything about no Hibernate specific, but more in detail about Spring Data JPA. But also I cover the entity lifecycle, which is something that you should know and master the here you have basically spring data JDBC, right here. And you have JDBC template right here. So this is when, for example, you want to have full control of the queries. And basically you have something called row mappers. And yeah. So this is when you have full control and you don't have classes with annotations and sometimes can be really complicated. Then we have Spring data. Mongo, So again, this right here. It's a rapper that allows you to have your your classes or so classes as documents. And then from that you have a classes as collections. And from collections, you can have a bunch of documents. So because. Mongo, it's a document store. Then it makes complete sense for you to use Spring data. Mongodb, I also have a course on it. So go and check it out. So as you can see the back end, it's really important. And it's actually the database. Right. So how you store information. So it's quite huge this topic. And on my website I've got free course on SQL and Postgres about 4 hours long teaching you transactions, indexes, queries, joins and all of that stuff. And basically all of this is actually covered on my website. So go and check it out. I'll leave a link where you can find all of these courses. The and finally, right here, there is microservices. So microservices. This is where Spring Boot is really nice because you can build microservices really quick. Now here with microservices, you've got Spring Cloud right here. So Spring Cloud is basically a bunch of small projects that allows you to build microservices. So there are defined patterns available that you can just plug in place. So Spring Cloud right here. So this is like a load balancer that you can basically send traffic to different various microservices his tricks right here. This is for fault tolerance. And then you have love or I don't know if I pronounced that correctly. So or so, yeah, it's just a weird name, but this is for distributed tracing. So as you have various different micro services, when you perform a Http request and that request flows through all of these different micro services, then it's good basically to know what is happening and where it's actually taking long. So on and so forth. And then you have cloud config. So this is mainly for a centralized place where you can store common configuration for your micro services you can use, for example, GitHub yeah. So get a thing yet get. And then you've got other sources that you can store. And then you have Eureka. So this is for service discovery. You've got the client and you've got the server. And finally have the Open face. So this is, for example, how you go and connect to external API. So the API for Open Face Super nice and easy to use. So there we go. So you actually have been requesting me to do a series on all of this. So it's coming very soon. So subscribe and stay tuned. And then you have Docker and Kubernetes. So this is really important if you want to follow microservices right here. So again, I've what course on Docker and Kubernetes teaching you everything. So combined, I think it's almost 20 hours of content. So go check my website where I teach Docker and Kubernetes, and you will see that, for example, like majority of this stuff, like service discovery and stuff, you probably will not use Eureka client and server when using Kubernetes. Also sprinkle loud. If you are on Amazon web Services or GCP, you can just use their load balancer, which is like fault tolerance and high available. So it's because if you have your own or if you are managing your own load balancer, your own server, then you can imagine that if that server goes down, then you have issues. Right. And you also have to configure all the load balance certificates and stuff, so it can be quite difficult. So you most likely will not use this in production. Finally, you have message cues SQS. So this is mainly AWS land, and then you have Kafka and then RabbitMQ. So again, I'm planning on doing a series or on this one, but this, for example, allows you to basically just imagine where you've got scenario where your user makes a request to your back end, and you do the bare minimum to guarantee that the request is either successful or rejected, and then the rest whatever you can do in the background, instead of having the user waiting for all of these different things that has to happen, you can just stick the request in a message queue and that will be done sometime later. Right. So asynchronous. Yeah. So I'm actually planning again on doing a course on message cues and stay tuned for this. And to be honest, I think this is it. So one more thing, which I actually forgot in here, and that is, for example, how to store configuration or secrets. So secrets. There are various different ways that you can do that. But one option, for example, is to use a managed solution. For example. That's usually what some people do. Or you could use Vault, for example. So there is support for Vault. And I will actually include in this diagram right here. But this is, I think pretty much. And you can see this video was actually longer than the other one, because Spring is just the beast. And yeah, lots of you guys enjoy Spring boot content. It's super famous in the industry. And yeah, you should use it and learn Spring boot. So on my website, I've got a full stack Spring boot with React covering all of this, deploying to Amazon CICD with kid up actions and all of that good stuff. So that's the best selling course. And I'm going to leave a link where you can actually find the course and check it for yourself. And if you enjoyed this video, give me a thumbs up so I can keep on recording these videos. Let me know what you want to see next. If you're not part of the Amigos Code community, go ahead and join the community is growing. And yeah, by the way, I'm actually going to leave a link where you can find all of the diagram. And if you have any suggestions, please do let me know this. So for now, I'll catch you on the next one Assalamualaikum