Transcript for:
Comprehensive Guide to Spring Boot

Hello, welcome to CodeSnippet. So in this video, we are going to go through the roadmap of your Spring Boot. We will discuss the roadmap from start to end, what all things we need to go through in order to learn entire Spring Boot.

And we will see the step by step functionalities that we need to go through in order to understand Spring Boot in detail, right? Let's go through the roadmap. So let's get started from here.

So first point, right? Introduction to Spring Boot, right? So first, you need to understand what exactly is Spring Boot. what is the advantages of spring boot over spring what problem was there with spring and how spring boot resolves it what are features and advantages of your spring boot right basically spring boot have many features over spring framework it will give many advantages it will give you easy configuration it will give you starter dependencies it will give you actuators it will give you production ready features right there are many advantages also there will be a server integrated inside your spring boot application you don't have to look for any other server to deploy your application right so many advantages that we will go through right so that is about the introduction right so you need to understand what problem it is solving and what are the features and advantages of spring boot in order to start your journey with spring boot right second point is setting up your initial spring boot project right creating your first spring boot project how you can run your first spring boot project what id is to use everything you should understand first right understanding the layered architecture you need to understand the package structure right you need to understand what is controller layer what is service layer what is repository layer inside your application how they are segregated how the test packages are segregated inside your application right so i have created a video where i have created a crude service basically on a book application in that you can learn how you can set up your first spring boot project right you can also understand how to create a spring boot project right and how to run the project first time in intellij IDE i have used intellij IDE over there and also i have explained the layered architecture how controller layer service layer and repository layer looks like so this is basically the video where i have created a crude service in spring boot right so it's kind of a book application that i have created only four apis i have added as this is the first project right all simple apis i have added over here you can find this video on my channel i will also put the link in description right or you can also see it in i button somewhere over here so that is about this application right so that is step two inside your roadmap right next one is understanding maven or gradle right so what is maven and what is gradle these are build tools right what are these these are build tools right so build tools are basically to build your application so your application will have a lot of dependencies right so that dependencies will be handled by these build tools right we'll just need to go ahead and add one dependency inside your pom.xml in case of maven and it will auto download it and put it inside your application right so it makes your life easy right let's say you want to add j unit inside your application you just need to add a dependency inside your maven and it will automatically download it and it will be at your class path and you can use it right so as simple as that so in order to run your spring boot application you need to understand maven or gradle any of the build tool will do right in this project that i have mentioned i have used maven right because when you create your first spring boot project you can select the options you can choose between maven and gradle so it will if you select let's say maven it will give you pom.xml file right where you can add your dependencies right so that's about your understanding maven and gradle build tools right so you need to understand that in order to run your application in order to add dependencies inside your application right after that very very important point comes into picture understanding spring boot annotations right well you need to understand the annotations right so i have listed few annotations over here right spring boot application controller rest controller request mapping all the mappings are there right request parameter request body component service repository auto add a lot of annotations i have mentioned etc over here because there are a lot of annotation inside spring right the usage of all this annotation you need to understand right what exactly is annotation right why it is used right how we can configure things by using annotations right what is service what is repository what is request mapping so in order to understand that i have already made a video on this one right so you can go ahead on my channel and you can check this video so this video covers spring annotations basically and you will get a fair idea of major annotations that are used inside this project right so i have actually used examples to explain each and every annotation so all the annotations that you can see in this list i have covered as a part of this video again you can find it on my channel or i'll put the link in description so that you can find it easily right so these annotations i have covered more annotations i will cover in future and create another video for that right so for most of this roadmap i have created lot of videos already right however things which are not covered yet i will cover that in future right once you understand the spring boot annotations next point comes is dependency injection right so dependency injection is a very important feature of your spring right dependency injection and inversion of control lot of interview questions will be there on this topic so you need to understand that in depth right so i have created a video on this topic as well so if you go in my channel and check this video so spring dependency injection so i have explained the concept of dependency injection in this video basically i have covered the three type of dependency injection there right field injection setter injection and constructor injection right now which one to use in which case what are the advantages of these types and which one is the best advantages and disadvantages of all these types i have covered in this video so you will understand you will get a fair idea of what dependency injection and its type after that once you understand dependency injection right next point comes into picture is configuring spring boot applications right so basically there are configurations inside your spring boot applications so when you create your first project you will get a application.properties file inside your spring boot application where you can add various configurations right let's say there is a url of your channel right let's say there is url of my youtube channel youtube.code snippet right so what you can do over there is youtube.code snippet and equals to you can add your url right so i will add my channel's url and in the entire application i can use that youtube.code snippet as a variable which will inject the url for me right so that is a configuration for my application right let's say i want to change that url so i don't need to go everywhere inside my application wherever that is used to change it right i will just go to properties file application.properties file what i will do i will just change that url there and it will be reflected in entire my application right so it makes our life easy so that is how you can configure spring boot properties over here there is also alternative file to that which is called as application.yaml in which we can add properties in hierarchical fashion right so that also we can use that is a more readable format basically so i have created a video on instagram on this topic so i have a instagram channel as well you can go ahead and check i'll put a link in description i will add the daily one video there so i will cover a lot of topics over there all the small small topics quickly i will cover there on daily basis right so go ahead and follow it will be very helpful right after that profile specific configuration right so in spring boot application you can handle profiles as well right what is profile let's say you need some different configuration for your test environment you need some other configuration for your production so that channel url that i mentioned might be different for each your environment right it will be different in test it will be different in prod it will be different in let's say your stress box so all these things you can handle inside this profiling right so profile specific config you can add right so according to your environment it will pick the configuration right so that is basically the configuration of your spring boot application right next one which comes into picture is understanding spring beans and its life cycle very very important right what exactly is spring bean it's basically a java object okay how the beans are created inside your spring boot application where exactly the beans are stored what annotations are required in order to create your beans everything will be covered in this topic right and the life cycle as well life cycle from application start where the bean is created and until the bean is destroyed what are the steps that a bean goes through everything will be covered as a part of this topic right so i already have a video on this one as well so if you go on my channel and check the spring bean life cycle video you will get the fair understanding of how the bean will be created what exactly is the bean how the bean will be created the life cycle of the bean what all steps the bean will go through everything you will understand in that video basically right so again i'll put a link in description or you can directly go and find this on my channel right so very very important topic understanding spring beans and life cycle okay so after that once you understand what is the spring bean and its life cycle you need to understand the scope of the beam okay so scope of the beam means how the visibility of your beam will look like in your application when it will be created when it will be destroyed how it is being used right so basically there are four major types right four major types of your spring being scopes right uh which you can assign by using scope annotation and what is the default scope default scope is singleton when it comes to spring boot interview this is a definite question basically what is the default scope of the beam right so you need to understand being scope in detail for that so basically there are four type of bean scopes singleton prototype request and session right so all these types i have covered as a part of this video so there is a video named bean scope right so in this video you'll get a fair understanding of all the bean scopes right all the four type of bean scopes in which scenario you need to use which one right so basically singleton will create only one bin and it will be used for entire application prototype will create a new bin each time your bean is invoked right in request you will have one bean for one http request in session you will have one bean for one http session right so this might sound confusing now or you may not understand it at this point of time but when you go through all these videos that i'm showing you you will get a fair understanding of that right and it will be very easy to understand as well right after that we have spring boot data access how spring boot is going to access your database spring data jpa comes into picture so basically java persistence api this is again just a dependency which you can add in your spring boot application jpa is basically orm framework object relational mapping right and you can also use jdbc but spring data jpa is better approach so i haven't covered it yet i will cover it in future videos this is very easy topic as a part of this video spring boot crude service i have made use of jpa i'm not focusing on jpa in that video i will create a dedicated video on this which will come in future right so spring boot data access very very important topic right after that create a restful api using spring boot right so in this video i have created four apis which will give you basic knowledge right but i will create more videos in future which will cover major aspect of restful apis because this is a very simple application as this is the first application that we are going to build right after that very very important topic spring boot security so spring boot will provide you dependencies which you can add directly to secure your application right just adding dependency will secure your entire application after that you'll have to handle users and roles how you can handle that we will see in future videos so basically authentication and authorization you need to handle when it comes to security right so very important aspect of spring boot security right so that also we will cover in future videos right after that you will have spring boot logging how you can use logging inside your application so spring boot also provide a framework for that after spring boot exception handling right this is again an important topic right how you can handle exception inside your controller also spring boot caching is another important aspect right that also you need to understand enable cacher management basically there is annotation inside your spring boot basically it is provided by spring boot framework so we can use that bring good interceptor many organizations is using interceptors basically before request is reaching to your controller if you want to modify your request that you can do in your interceptors let's say response is there response also you can modify right so all these things you can do by using interceptors so important topic spring boot scheduling is again a very important topic right how you can use spring boot scheduling okay so that also you need to understand right after that you have unit testing right spring boot unit test so you can use j unit or mockitos right so mockitos are important you can mock the objects right because when it comes to dependency injection right auto wire dependencies you need to mock them right in order to write tests for them right after that spring boot actuators this is again a huge feature of your spring boot okay very important feature so basically you need to add a dependency of actuator inside your project and it will give you a lot of features okay a lot of production ready feature you deploy your application you can check your health check you can check your various matrices you can check what all beans are injected everything you can check over here right so there are a lot of apis that a spring boot actuator will provide that you can use directly inside your application so like that you can use actuators right so that also we will cover in future a very very interesting topic after that deploying spring boot application right so by default in spring boot application you will get a tomcat server on which it will deploy the application the moment you run it right so in this so in this video when you run the application it will be deployed on tomcat server right because it is integrated inside your spring boot application right after that you can also use docker so you can dockerize this application right you can use ci cd to deploy the application right continuous integration continuous development you can use tools like Jenkins for that you can also deploy the applications on cloud right you can use AWS cloud Azure cloud or Google cloud as well right where you can easily deploy and scale your application according to your need right that is about the deployment of your application after that you have micro services so how you can use micro services with Spring Boot okay again important topic so introduction to micro service you need to understand what exactly micro service architecture is right so basically you need to register your micro services with eureka server so that they can communicate between each other right so that also you need to understand when it comes to micro service architecture right let's say you have 10 micro services inside your application let's say your request is coming to your first micro service and it is flowing through your 10 micro services right how you are going to trace the request okay in order to do that something called a sleuth and zipkin will help you right sleuth links a trace id with your incoming request to your first application and zipkin will help to visualize the request by using a trace id if the request is failing it is failing in which micro service that you can check by using this tracing right so this is again an important thing right because if you don't apply this you will be blind inside production and do will not know what to do if something is going wrong right so you need to use this when there are multiple services comes into picture api gateway will also come into picture so it is service which will be a get for your application it will the first request will hit to api gateway and gateway will decide where to divert this request right so api gateway comes into picture after that spring cloud config right so let's say there are 10 micro services right so in 10 micro services there will be a case where configuration will be common okay so this common configuration we can store in a spring cloud config and all the micro services can talk to that spring cloud config and get the configuration from there right so that it is accessible to all the micro services real time okay and if you want to change the configuration you need to change at only one place where in spring cloud config and it will be applied to all your microservices right this is again important topic that we need to go through when it comes to spring boot microservices right once you go through all these steps right you can start building your spring boot project right you can work on spring boot at this point of time and build whatever spring boot projects you want so most of these topics listed over here i have already covered which i highlighted as well right and the remaining topic i will cover in the future whichever are important topics so if you don't want to miss that don't forget to subscribe to my channel if you like this video hit the like button share this roadmap with your friends so that they can also learn spring boot right that's it for this video see you in the next video