Upgrading Microservices to Spring Boot 3 and Java 17 - Full Tutorial

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey what's up everyone and welcome to daily code buffer in this video we are going to see how we can upgrade our applications to springboot 3 which is spring framework 6 and also we are going to upgrade our application to Java 17 as well so this is the agenda of our video and we will upgrade all our microservices application which we have gone through in our spring boot micro Services tutorial we will upgrade everything to Spring boot 3. so without any further Ado let's get started so currently our application runs on springboot 2.7 okay Java 11 and alongside it it is also using the spring framework file okay so these are the current versions of the libraries and Frameworks that we have used in our micro services so now you might have this situation as well like how you can upgrade your applications to springboard 3. so we are going to do the same thing in this section of this course where we will upgrade our application to Spring boot 3 so we will upgrade all our libraries and all other dependencies so those are compatible with the springboot 3 and Java 17 as well so first let's go ahead what is the plan and accordingly we will implement the changes so what we are going to do is first of all for each and every application that we have right may it be config server cloud Gateway it should be service registry or order service payment service and the product Services right so all these applications that we have we will upgrade all those applications to spring boot 3.1 okay so this is the current latest version available so we are going to upgrade to springboot 3.1 alongside it we are also going to upgrade to Java 17. okay now to upgrade to Java 17 what you have to do is you have to install Java 17 as well within your system and alongside springboot 3.1 upgrade what it will bring is it will also bring spring framework 6 upgrade as well okay so you can see that all the three things that we are going to upgrade here so with this upgrade our application would be with the latest and greatest technologies that is springboot 3.1 and we will be able to use all the features of springboard 3.1 and Java 17 as well so this is the plan and this is what we are going to do in this section so let's start with the implementation of this change now as we discussed we are going to upgrade each and every libraries and Frameworks here so what we are going to do is if we go to the application okay this is our application uh we have all these applications available and If you go to GitHub as well I will add the link as well so you can go through the application as well okay so if you go to the GitHub here okay and this is our project that is spring boot micro services okay here all the applications are available okay this is what we have been creating throughout this course as well so what we have done is we have taken the main branch over here and we have opened this in IntelliJ IDEA and all this application is with spring boot 2.7 and we are going to upgrade it okay so first of all what we are going to do is we are going to start with the service registry okay so if you go to the service registry and if you go to the pump.xml file okay here you would be seeing that this spring boot version is 2.7.3 alongside the Java version is Java 11 and the cloud version is 2021.0.3 so these are all the things that we need to upgrade and alongside it if there is any other versions available that also needs to be upgraded all the versions you can see all the dependencies added here those dependencies will be automatically upgraded the moment we upgrade our spring boot version okay because Springwood is a parent of all those dependencies okay if we have defined any particular version then we have to check that particular version is compatible with that springboot 3.1 or not and accordingly we need to upgrade okay so this is all that we have to do and this is what you would be doing in your applications as well now alongside this alongside each and everything we have been using redis in our system and we have been also using Zipkin in our systems okay so those two things also would be available the same thing you can use that is the redis version and Zipkin version what I will do is I will start each and everything within the docker itself the same steps we have followed earlier within the course as well okay so here I'm just starting my Docker within my local machine and I'll start the two containers that is the radius container and the Zipkin container okay so this is the Zipkin container that I'm starting and this is the redis container that I'm starting so my application can connect to Zipkin and reduce both you can go to the terminal and you can run those commands which we have shared earlier to start your application okay those are the same thing we are not doing anything different here for redis and Zipkin we will just upgrade our applications here okay so with all the GPS done with all the basic steps done let's start upgrading the application now so now as you have seen that we have been using uh spring 2.7.3 what we will do is to get the latest information like what particular versions and everything we have to use to make it our life simple we will be using the spring initializer so what I'll do I'll go to the Chrome here and I will do start.spring.io okay so this will help us to get the exact version that we want to use and if there is any dependencies change right if there's any artifact change then we can directly get it from here okay so what I'll do is I will select the maven project here because we have been using the maven project and here you can see that spring boot versions I will be using spring 3.1.1 version here you can use the any versions available over here okay but we'll be using the 3.1.1 here because that is the stable version available and what we will do is we will have the packaging as jar and Java version as 17 okay with all this details selected what we will do is will go to our IntelliJ IDEA and with service registry you can see that we have the Netflix Eureka server as a dependency okay once you add this dependency Cloud starter and everything will come automatically for that okay so I will add the Eureka server here okay you can see that there is the spring Cloud Discovery so once I add this and if I go to explore here okay the file would come here and you can see that the versions and everything is different right so what I'll do is I'll just copy this spring version here and I'll add the version here so I'll just replace 2.7.3 to spring 3.1.1 okay now also we have to change the Java version okay so we will change the Java version as well so you can see the Java version is available here and spring Cloud version is also a change right so these two things we will change so you can see that we change the Java version and we change the spring Cloud version as well alongside our springboard version now you need to make sure that you have installed Java 17 to run this application if you have not installed Java 17 you can search for Java 17 and you can download Java as well from there okay it is very easy to install Java 17 the same way you would have installed earlier versions of java the same way you can install as well there is nothing else we have to do for that and if you are still facing any issues regarding installation of java 17 do let me know in the comment section I'll help you out to install that as well so these two versions I have added already spring boot version and the Java version and the cloud version if we scroll down there is no particular versions available all the things will be available directly from the spring boot 3.1 version okay so we are good with this now we can just reload our Maven project here and all the latest libraries will be downloaded and we would be good for this service registry so you can see that it is downloading all the dependencies so once it is downloaded we will start our service registry so here you can see that everything is downloaded so what I'll do is I'll go to the services okay and I will start the service registry application and here you can see that the service registry is started if I go here if I open it you can see that my service registry is completely working fine so you can see one of the application is been upgraded to Java 17 and springboot 3.1 version okay now let's go ahead with the other service now let's go ahead and upgrade the product service available okay so if you go here to the product service okay if we go to the palm.xml file here you can see that this is also working on spring 2.7.3 so this is also something that we need to upgrade so what we are going to do here is we are going to add the similar dependencies okay what we have used here within our spring initializer so this will help us to get all the new dependencies and we can add all those dependencies which are missing and we can replace as well okay so what I will do is I don't need Eureka server for my product service I need Eureka client right so I what I will do is I will just remove this I will go to add and I'll do add web because this is a spring web application okay so I've just added spring web alongside what I need I need Eureka client okay Eureka Discovery client so these two dependencies I have added alongside this my application is working with GP as well so I'll add this print data GPA dependency and alongside my application is working on my SQL right so I'll add the MySQL driver as well okay because there might be possibility that MySQL driver will be upgraded based on the newer versions of Springwood as well okay so we should use those drivers as well okay alongside that if we can scroll down okay there is a config dependency as well and zip current solution dependencies as well there is a springboard starter dependency and OCTA dependencies as well so let's add those dependencies also so what I'll do is I'll go and add the security dependency the Spring Security alongside I will add the OCTA dependency okay then there was a Zipkin dependency right Zipkin observability so I will add this as well and alongside there was a dependency for config client right so I will add the dependency for config client as well okay so you can see that uh most of the dependencies that we have added so what I will do is I will explore this and I will add the related changes so first of all what we have to do is we have to change the version okay Offspring boot so I'll just copy this and I will scroll to the top and I will change the spring boot version to 3.1.1 after that I will change the Java version and Cloud version as well so I will change this to version that is Java 17 and the cloud version okay so these versions are also upgraded now if I scroll down here okay what you can do is you can also compare these two files so you will get more understanding what has been changed and what needs to be upgraded okay so what I was going through this is and I found out that the OCTA dependency has been changed right to 3.0.4 so I can upgrade this as well so what I'll do I'll just search for the OCTA and just scroll down okay and I'll upgrade this version as well okay and Zipkin and salute so in the earlier version you would be adding spring Cloud slew Zipkin and spring Cloud starter sleuth but from now on if you scroll up here okay sorry let me scroll down here right so you can see that to add the Zipkin we need to add the micrometer dependency because this was added as a part of Zipkin and Zipkin reporter Brave these two things is been added so we need to take this to dependency that is the micrometer tracing Bridge Brave and Zipkin reporter Brew okay this two we need to add and we need to remove these two dependency that is Zipkin and sleuth and we need to add this okay so Zipkin is also been added now then we have also upgraded OCTA then we need to go back here and we can check that MySQL is also changed you can see that okay if I scroll up here you can see that earlier it was used my SQL connected Java and now my SQL connector J has been used and the group is also been changed so I'll just copy this dependency and I'll replace the dependency here cool right so you can see that most of the things are upgraded let me just go through it once and yes all the things are upgraded here so we just upgraded the application to springboot 3.1 Java 17 the cloud version is upgraded the OCTA is also upgraded the MySQL connector is also upgraded and alongside that zip can install dependencies are also change those are also upgraded here okay once all this are changed what we have to do is we have to reload our Maven project okay so I'll just reload the changes so it will download all the latest changes and all the libraries will be downloaded so we'll wait for that to complete and now what we have to do is we have to start our application and there might be chances that it may fail also but what we will do is we will go ahead and we will solve all those changes all those issues as well okay so let me just go through the services and we did the changes in product service so let me just go to the product service and start the application and here you can see that we have got the compilation error as well okay so here you can see that it is not able to resolve the entity okay so that's a good point that we can come to the next section where you can see that it is not able to access the entity because from the Java 17 onwards all the Java doubly related packages has been moved from java X to Jakarta okay so this is a change that happened in Java 17 so we need to do that change as well okay so what you can do is ideally if you do control space here okay you can see that you are getting that entity is from the Jakarta dot persistence now it is not from java X persistence okay so the packaging has been changed because from java X it has been everything moved to Jakarta so what I will do is I will just change this import from java X to Jakarta okay so now you can see that all the compilation error has been gone now okay so now I will try to run my application again okay and now we have got one more error so let's see what is the error and and the error is could not locate locate the property Source the resource is optional okay okay this is the error because our config server is not running okay we will do the change for config server as well but is there any other error there is a connection refused okay okay so I can see there is one error available that is for the config server right so what we will do is let me just start the config server and I will restart my product series again consider config server is still with spring 2.7 okay we have not upgraded it but it needs config server so I'm just starting the application okay so let me just start the config server because config server is something that provides the configuration for the product service to start it okay so now config server is started so now I should be able to start my product service so let me just restart my product service again okay and it is throwing again error so let's check the error so if you scroll up and the address bin creation exception and the issue is error creating bin with name entity manager okay so that means we are not able to create the entity manager Factory that means we are not able to connect to our database or we are not able to connect from our GPA to database right GP is not able to connect here and if you scroll here and here we can see that we have used the dialect as MySQL 5 7 in nodeb dialect okay and this dialect is not available that's the issue right unable to resolve name this one so now what we have to do is as we have upgraded our MySQL connector as well right so that means this dialect might also been changed right so what we have to do is we have to search for this error and we have to get the newer dialect right so what I will do is I will just change this dialect to a newer version of dialect and we should be good here so currently you can see that the dialect is 57 MySQL 5 7 in ODB and currently we have whatever the version we are using and whatever the MySQL server I'm using that is the MySQL 8 alongside what I have to do is I have to choose the same dialect so I will upgrade to my SQL 8 dialect Okay so what I will do is I will just come here and I will search my SQL a dialect okay and I can use this okay so I'll just copy this dialect and what I will do is I'll go to product service I will go to resources and application.aml file and here you can see that this is the same dialect that I've used which I'm getting the exception right that means I'm I do not have that particular class available within my jar file so I need to replace this so the latest version of dialect available is this one that is MySQL 8 dialect so once I do this change and if I restart my application you can see that my application is started right so my application is completely working if I go to Chrome and if I go to Eureka and if I refresh my page you can see that product service is available right and config server is also available so now you can see that we upgraded our spring boot to two of the projects that is the services history and the product service now let's go to the next one so now let's upgrade our payment Service as well so within the payment service we will upgrade the spring boot 3 and Java 17 as well so I'll go to the payment service and I'll open the pump.xml file okay so mostly this payment service is also the another micro Services similar to product service so we are using this similar type of dependencies as well so whatever I have added here as a part of spring initializer that should be good to upgrade my payment Service as well so from here I will just copy the spring boot version okay and I'll upgrade this spring boot version and then I will upgrade the Java version as well so let me just copy Java version and the spring Cloud version from here okay and then what I have to do is I have to remove the Zipkin okay so let me just remove Zipkin then web is fine Cloud starter is fine Cloud starter config is fine Eureka client is fine sleuth because we know that Zipkin and slow has been changed right so I'll just remove it and what I will do is I will just scroll down here and I will select this micrometer dependency and this Zipkin reporter bio dependency and I'll add here okay then MySQL connector as well so I'll just scroll down here and my SQL connector dependency has been changed so I'll just copy this and I will change this as well okay and then I know that in the previous application also we upgraded the OCTA right so that's also we are going to change OCTA dependency octase 3.0.4 so we have upgraded all the dependencies let me just reload our Maven project so all the changes are reflected in our application so here you can see that everything is reloaded now now what I have to do is I have to go to the payment service okay I'll go to the product product service first I'll go to the SRC main resources and application.yaml and I'll copy this dialect because the same dialect I have to use in my payment service so I'll go to the payment service SRC main resources and application.tml file and I will upgrade the dialect okay now I need to start my application so I'll go to the services I'll go to the payment service and let me start the application okay and now we got the same error here because Java X has been moved to Jakarta so I'll just change to Jakarta okay and I will start my application again so I'll start the payment service again and we got one more error okay so let us see the error as well what it is saying is the and measure method symbol is not available so that means and major method is been removed from the latest version of Spring Security Six okay so what it is saying is variable authorized request of type expression URL expression registry okay so let me just copy this exception and let me search what it says okay can cannot resolve method and matches yes this is what I need and if you scroll down what is the solution it has been provided okay yeah this is the solution and it has been approved as well and here we can see that the end measure method has been deprecated right so if you are using springboard 3 project we have to use the request matches okay so what we will do is we will change the ant matches to request matches okay that's it you can see that the problem has been solved now okay so you can see that it's very easy to find the solutions only some of the methods has been changed okay so now the spring security has been upgraded now so we change the method to make it uniform this was changed right so let's go to the services we'll go to payment service and we will start the payment service and the payment services also started so you can see that it is completely working if we go to the browser if you go to the Eureka service and now you can see that payment services also available okay now let's go ahead and upgrade the order service so now let's upgrade the order service so we'll go to the order service and we'll go to the pump.xml file and this is also similar micro services to payment service and product service so it is also using the similar types of dependencies so we can use the same dependencies from here within the spring initializer and we can upgrade everything so we'll upgrade the spring boot version First okay so you can see that how simple it is right so we just upgraded the spring boot version then we have to upgrade the Java 17 version and spring Cloud version from here okay and then if you scroll down here we have to change the MySQL so my SQL connector is com dot MySQL and it is MySQL connectors J okay and then if you scroll down spring boot test Cloud config is there open Fane is the same thing it will be part it will be derived from the springboot 3.1 version then we have the Zipkin and sleuth right so this is what we need to remove zip current sleuth and we need to add micrometer and Zipkin reporter dependencies okay and then circuit breaker resilience is the same alt to client is the same and we just need to upgrade the version of this this is 3.0.4 okay and wire more question is also same we can keep it same okay so here you can see that the dependencies are upgraded I can reload the maven project okay and what I will do is I will go to the payment service let me just copy the dialect from here rather than going okay so I'll just copy this dialect information and I need to go to the order service Source Main resources and application.yaml file and I'll upgrade the dialect okay let me start my order Service as well and we have the issue so what we will do is we will change from java X to Jakarta okay we'll go to the order service and restart our order service application and here you can see that auto service is also started if you go to the browser and go to Eureka server and if you refresh you can see that auto service is also coming up okay so that is also completely working fine now let's upgrade our config server as well so we will go to the config server we'll go to the perm.xml file and let's upgrade the version of this as well so we will go to the spring initializer we will upgrade the spring version okay then we have to upgrade the Java 17 and spring Cloud version as well so let me just go through that and upgrade that as well and then if you scroll down there is no other versions available and there is no other dependencies available which has a specific version needs to be added right so all this version will come from the spring boot starter parent as well so we will just reload the maven project and once the libraries are downloaded what we have to do is we have to restart the config server so let me just restart the config server as well so your config server is restarted right so if I go back and go to the Eureka server and if I refresh I should be getting the config server as well okay so you can see that all the services are being upgraded to springboot 3.1 and Java 17 as well there is one service remaining that is the cloud Gateway so let's implement the upgrade in that as well so now let's go to the cloud Gateway okay and within this Cloud Gateway as well we'll upgrade everything so we'll go to the pump.xml file and we have to upgrade the versions so let's go to the spinning initializer and the version that we need is spring 3.1.1 okay and then I need to upgrade the Java version as well so let me just go here and let me upgrade these Java versions okay and then if you scroll down here I need to remove the sleuth dependency web flux is part of reactive springboard and it will come within the spring 3.1 as well so we do not have to change anything here if you scroll down config is the same part Gateway is the same Cloud part right Eureka client also same and sleuth right so this is something we need to remove so let me just remove that and what I'll do I will go to the browser and let me just copy the micrometer dependency and Zipkin reporter preview dependency so this is two we need for the zip current sleuth okay then rest of the dependencies are all okay OCTA we need to upgrade to 3.0.4 right that's the same thing let me check your if you scroll up it's 3.0.4 right and if you scroll up again let me just recheck all the versions 3.1 Java 17 2020 203 and rest of the things are fine okay so let me just reload the maven project as well for my cloud Gateway so here the maven load changes are done let's go to the services and let's start the cloud Gateway as well and we got some error okay so the issue is it's not line number okay enable Eureka client okay so enable Eureka client is not available it's not able to resolve the dependencies for that okay so there's a two things ideally within your springboard application when you are working with the default changes right with the auto configuration you can just remove this dependency as well that it is not needed or this enable Eureka client has been changed with enabled Discovery client okay either you can add this or if you don't add also that's fine because we are using the default configuration so let me just optimize the import so it will just remove this okay so we have just removed the import that class was not available so let me go to the services again and let me start the cloud Gateway again so you can see that cloud Gateway is also started if I go to the browser and if I go to Eureka if I refresh EPA Gateway is available okay so you can see that all the services are being upgraded to springboot 3.1 version Java 17 version spring Cloud 2022.0.3 version and the remaining dependencies are also upgraded now let's test the application as well now to test the application we have different apis to test alongside that we have also been using the radius in our system right so if I if you have seen that within the cloud Gateway right we have been using the red is dependency as well right and alongside radius there is also Zipkin uh install right so if I open localhost 941 okay you can see that Zipkin is working right so Zipkin has also been installed using Docker here and all our application has been connected to our Local Host 9411 Zipkin as well so any queries or anything that we do all those queries will be visible here so we will be able to trace each and everything as well so your Zipkin your redis everything is also connected to your applications okay so everything we have upgraded so for testing what we can do is if we go to our IntelliJ IDEA we have three services available that is the product service payment service and Order service okay and all the services have Spring Security also so any user who has customer or admin role can call those APS differently based on the permissions that we have okay only admin can add the new products to the system and only the customer and admin both can see the products like what products are available right and only customers can place the orders from the application right so these are all the different things available if I just show you that as well briefly right so if I show you controller product controller right so you can see that this is a product controller where we have a method to add the product and this product is can only be accessed by admin we have a product to get we have a controller to get the product this can be accessed by admin and customer both right similarly we have apis to place the order as well right there is an order and place order API and this can only be accessed by customer there is a get order details API which can be accessed by admin and customer both okay so these are all the things that we've already implemented in our previous sections so here we are going to check if everything is working fine after we upgraded our applications to springboot 3.1 and Java 17. if everything is working fine then we can say our upgrade is successful so what we will do is we will go ahead and we will add a product we'll get the product details and we will be able to place an order as well okay and all this things you can see we have added the authorization so everything is working via OCTA as well so if I go to OCTA right here within the OCTA we have this application the same application that we have added here and within this application we have people available okay so this is the user that I'll be using so this user has both the permissions available as a customer and admin both okay so we'll be using this so first of all what we have to do is if we go to the postman here and we have the API now we have the API Gateway right so all the API all the requests we will do via the API Gateway only and API Gateway is running on Port 9090 okay so if you go to the services you can see Cloud Gateway is running on 9090 and everything we will run via that only okay so what we'll do is we will get a product so I know that I already have one product available so let me just try to get that product okay and here you can see that whenever I'm trying to get a product I'm getting the exception that is 401 unauthorized okay so I need to authorize my request as well so for that what I will do is I have to get the auth token so let me just open this and let me just go to incognito mode and I'll go to localhost 9090 okay and to get the authorization token what we have done is we have implemented the API that is if we go here within the cloud Gateway SRC main Java controller and this is the authentication controller we have been using and the request is authenticate slash login okay this is the API authenticate slash login this is the API that we have to use to get the authorization token from the OCTA so let's go here and let's add this API and you should be ready redirected to login and what we will do is we will go here and we will use this email ID to login and we will use the password and sign in so once it is signing you can see that we are getting the access token refresh token and everything so what I'll do I'll take this access token okay I'll take this access token I'll go to the postman I'll go to headers and within the headers we have to add the authorization header and within the authorization header we have to add the bearer token so I'll just select everything I'll add barrier Bearer paste entire token okay this is what we have to add once we add this and we hit the API again we should be authenticated authorized and then we should get the data so you can see that we authenticated everything and we got the data currently it's showing products is done because of the circuit breaker so let me just hit it again and you can see that I'm getting the data okay now let me just add the data as well so I'll add a data with post request I'll go to the body I'll just change the API and what I'll do I'll add I'll add Mac Pro the price of Mac Pro is 6 000 US Dollars and quantities 100 okay so let me add this product okay it has been created now so if I go to get again and if I do product Slash 2 because that's the ID right so and if I hit send I should get the product that is Mac Pro so here you can see that from the cloud Gateway I am able to access my product service and I am able to store the data as well okay all the data has been stored in MySQL so if I show you my SQL we should be able to see the data as well let me just connect here and within the product DB tables we have a table that is the product and if you see the data you can see we have the iPhone 13 and macro which is what we recently added okay now let's do the order as well so if I go to this order API what I will do is I'll have localhost 1990 order with a post request and within the body I need to have the product ID what is the amount so I will be selling at 6500 I want two quantity and the payment mode is Cash okay this is what you will get from the order service if you go to the order service and Order controller okay this is the API that is the slash orders slash place order so let me just add place order as well okay and this is a post request and these are all the fields that you need product ID total amount quantity and product payment mode so if I go to the order request right this is what we have product ID total amount quantity and payment mode payment mode is Cash PayPal debit card or credit card okay so we have selected the cash here so this is the data that we are going to pass and if we hit on send okay so it is unauthorized so I have to change the headers so let me go and here change the headers so I have to go here let me select the header okay and Bearer token okay and let me hit on send okay we are cutting 405 this is because of circuit breaker issue okay because circuit breaker might be closed okay so you can see that we got the request as well so now if I we got the 54 ID right so if I go and check with the 54 ID with the get request you can see that we got the data right that order right is 54 it was placed the amount was 6500 we ordered Mac Pro product ID was two okay and this is the payment details for that as well for payment ID was 54 and the payment mode was cash and it was successful as well okay so here you can see that we are able to call all the different apis from order service payment service and the product Service as well if we go to the browser okay and if you go to Zipkin and if you run the query you should be able to see all the queries as well right you can see all the queries are available now currently okay you are not seeing all the queries okay only some of the queries are only getting added here okay for this to get all the queries to be traced here within Zipkin we have to do the configuration change as well okay that would be homework for you to get the configuration like what configuration that we need to do so that we should get all the traces as well within this Zipkin okay it's a very simple change okay I will add in the description but there's a homework for you to find out and what change we have to do to get all the traces within the Zipkin okay I will tell you within the hint is that we have to do the change in application.yaml file to make sure that all the tracing has been added here okay so you can see that by all these changes we have upgraded our application to springboot 3.1 and Java 17 with spring framework 6 and Spring Security 6. so you can see that how simple it was to upgrade each and everything and similarly you can do the same things within your application as well if you have doubts regarding any of the things that we have covered then do let me know in the comment section below it takes a lot of time to create this videos and courses so our sub would be much appreciated it's free for you but it motivates me a lot to create such videos for you that's been it I will see you in the next video till then Happy coding bye
Info
Channel: Daily Code Buffer
Views: 14,128
Rating: undefined out of 5
Keywords: spring boot, java, spring boot 3, spring boot 3.0, spring boot tutorial, spring boot tutorial for beginners, spring boot for beginners, spring boot microservices, spring boot 3 new features, dailycodebuffer, spring boot 3 upgrade, java 17 upgrade, spring framework 6 upgrade, spring security 6 with spring boot 3, spring security 6 upgrade, spring boot rest api, spring security, spring framework, java tutorial, spring boot microservices tutorial, how to migrate to spring boot 3
Id: w0e2GAHC3Uc
Channel Id: undefined
Length: 40min 0sec (2400 seconds)
Published: Fri Jul 21 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.