title
Spring Boot Full Course - Learn Spring Boot In 4 Hours | Spring Boot Tutorial For Beginner | Edureka

description
🔥 Edureka Microservices Training (Use Code "𝐘𝐎𝐔𝐓𝐔𝐁𝐄𝟐𝟎") - https://www.edureka.co/microservices-architecture-training This Edureka Spring Boot Full Course video will help you learn Spring Boot Framework from scratch with examples. This Spring Tutorial is ideal for both beginners as well as professionals who want to master the Spring Boot Framework. Below are the topics covered in this Spring Boot Tutorial for Beginners video: 00:00 Introduction 1:40 What is Spring Boot? 2:35 Features of Spring Boot 3:50 Why Do We Need Spring Boot? 4:30 Spring Boot Market Trend 5:15 Spring vs Spring Boot 6:25 Install & Setup Spring Boot 6:45 System Requirements 7:35 Install & Set up Spring Boot CLI 14:00 Install & Setup Spring Tool Suite 25:40 Model View Controller 26:00 What is MVC? 27:35 Model View Controller Workflow 29:00 What is Dependency Injection? 31:50 Inversion of Control 33:10 Types of Dependency Injection 34:05 Benefits of Dependency Injection 48:35 Auto wire 49:50 Create First Web Application Using Spring Boot 1:06:50 Create a Web Application To Pass Client Data 1:13:40 Model View & Object Example 1:20:30 Create a Submission Form In Spring Boot 1:40:50 Connect Web Application To Database 2:04:50 REST API 2:07:35 What is REST API? 2:08:50 Features of REST API 2:09:35 Principles of REST API 2:11:40 Methods of REST API 2:12:20 REST API Hands-On 2:35:55 Spring Data REST 2:36:55 Spring Data REST Hands-On 2:46:35 Spring Security 2:47:30 Secure Applications Using Spring Boot 2:58:56 Spring Boot Interview Questions -------------------------------------------------------------------------------------------------------- Instagram: https://www.instagram.com/edureka_learning Facebook: https://www.facebook.com/edurekaIN/ Twitter: https://twitter.com/edurekain LinkedIn: https://www.linkedin.com/company/edureka ---------------------------------------------------------------------------------------------------------- Got a question on the topic? Please share it in the comment section below and our experts will answer it for you. For more information, please write back to us at sales@edureka.in or call us at IND: 9606058406 / US: 18338555775 (toll-free).

detail
{'title': 'Spring Boot Full Course - Learn Spring Boot In 4 Hours | Spring Boot Tutorial For Beginner | Edureka', 'heatmap': [{'end': 1733.476, 'start': 1064.255, 'weight': 1}, {'end': 2935.595, 'start': 2792.803, 'weight': 0.852}, {'end': 3199.072, 'start': 3061.566, 'weight': 0.845}, {'end': 3729.329, 'start': 3461.728, 'weight': 0.748}, {'end': 5862.492, 'start': 5723.485, 'weight': 0.844}], 'summary': "This 4-hour spring boot tutorial covers mvc architecture, dependency injection, creating web applications, rest api, spring security, and inserting data into a mysql database. it emphasizes spring boot's benefits like rapid application development, good connectivity, cloud native support, and flexibility. it includes practical guidance on installation, setup, and troubleshooting, and highlights best practices for spring boot configuration.", 'chapters': [{'end': 429.815, 'segs': [{'end': 54.833, 'src': 'embed', 'start': 25.347, 'weight': 0, 'content': [{'end': 28.21, 'text': 'its market trends and the differences between Spring and Spring Boot.', 'start': 25.347, 'duration': 2.863}, {'end': 34.135, 'text': "After that, we'll look into how to set up and install Spring Boot and then we'll look into the MVC architecture.", 'start': 28.77, 'duration': 5.365}, {'end': 38.399, 'text': "So in the MVC architecture, we'll understand what is MVC and its workflow.", 'start': 34.515, 'duration': 3.884}, {'end': 41.582, 'text': "Once that is done, we'll look into the dependency injection.", 'start': 38.879, 'duration': 2.703}, {'end': 47.748, 'text': "So over here, we'll understand what is dependency injection, its benefits, its types and then understand a hands-on of the same.", 'start': 41.782, 'duration': 5.966}, {'end': 54.833, 'text': "After that, we'll look into how to create a web application using Spring Boot where we'll look into how to pass a client's data to a web application.", 'start': 48.388, 'duration': 6.445}], 'summary': 'Overview of spring vs. spring boot, setting up spring boot, mvc architecture, dependency injection, and creating a web application.', 'duration': 29.486, 'max_score': 25.347, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s25347.jpg'}, {'end': 304.021, 'src': 'embed', 'start': 273.163, 'weight': 1, 'content': [{'end': 275.244, 'text': 'then you can definitely get started with springboard.', 'start': 273.163, 'duration': 2.081}, {'end': 279.965, 'text': "as you know, springboard is one of the top Technologies in today's market for application development.", 'start': 275.244, 'duration': 4.721}, {'end': 284.228, 'text': 'So Java developer with knowledge of springboard earns around 1 lakh dollars.', 'start': 280.405, 'duration': 3.823}, {'end': 294.214, 'text': 'Similarly, the senior Java developer earns around 120 dollars that is 119 that you can see on my screen and full stack developer also earns a whopping amount of around a lakh dollars.', 'start': 284.648, 'duration': 9.566}, {'end': 298.177, 'text': "So that's a huge amount, right? So any of us can start learning springboard.", 'start': 294.555, 'duration': 3.622}, {'end': 304.021, 'text': "So on that note, let's take the session forward and understand the differences between spring and springboard.", 'start': 298.477, 'duration': 5.544}], 'summary': 'Springboard is a top technology, java developers earn around 1 lakh dollars, senior developers earn around 120 dollars, full stack developers also earn a lakh dollars.', 'duration': 30.858, 'max_score': 273.163, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s273163.jpg'}, {'end': 376.021, 'src': 'embed', 'start': 351.015, 'weight': 2, 'content': [{'end': 358.06, 'text': 'then spring is basically a web application framework based on Java and provides tools and libraries to create customized web applications.', 'start': 351.015, 'duration': 7.045}, {'end': 362.283, 'text': "Basically, it's more complex than springboard and takes an unopinated view.", 'start': 358.5, 'duration': 3.783}, {'end': 364.565, 'text': 'But, whereas when we look at springboard,', 'start': 362.703, 'duration': 1.862}, {'end': 370.449, 'text': 'springboard is a module of spring and is used to create a spring application project which we can just run or execute.', 'start': 364.565, 'duration': 5.884}, {'end': 376.021, 'text': 'Spring Boot is less complex when compared to that of spring framework and takes an opinionated view of the platform.', 'start': 370.87, 'duration': 5.151}], 'summary': 'Spring is a java-based web application framework, with spring boot being simpler and more opinionated.', 'duration': 25.006, 'max_score': 351.015, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s351015.jpg'}, {'end': 436.959, 'src': 'embed', 'start': 406.661, 'weight': 3, 'content': [{'end': 411.745, 'text': 'So the system requirements for spring boot are as you can see on my screen while the spring boot 2.1.', 'start': 406.661, 'duration': 5.084}, {'end': 416.329, 'text': '7 release basically requires Java 8 plus version and a spring framework of 5.1.', 'start': 411.745, 'duration': 4.584}, {'end': 416.529, 'text': '9 plus.', 'start': 416.329, 'duration': 0.2}, {'end': 425.453, 'text': 'It needs explicit build support of maven 3.3 version plus and gradle 4.4 version plus and also needs servlet container support,', 'start': 418.15, 'duration': 7.303}, {'end': 427.394, 'text': 'like in a tomcat 9.0 version.', 'start': 425.453, 'duration': 1.941}, {'end': 429.815, 'text': 'that is basically servlet version 4.0.', 'start': 427.394, 'duration': 2.421}, {'end': 436.959, 'text': 'the jetty 9.4 which has basically servlet version 3.1 and undertow 2.0, that is servlet version 4.0..', 'start': 429.815, 'duration': 7.144}], 'summary': 'Spring boot 2.1.7 requires java 8+, spring framework 5.1.9+, maven 3.3+, gradle 4.4+, and servlet containers like tomcat 9.0, jetty 9.4, and undertow 2.0.', 'duration': 30.298, 'max_score': 406.661, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s406661.jpg'}], 'start': 6.988, 'title': 'Spring boot and springboard', 'summary': 'Covers a comprehensive crash course on spring boot, including mvc architecture, dependency injection, creating web applications, rest api, securing applications, and top interview questions. it also introduces springboard, emphasizing its benefits like rapid application development, good connectivity, cloud native support, flexibility, and open-source nature, and provides guidance on installation and setup.', 'chapters': [{'end': 94.914, 'start': 6.988, 'title': 'Spring boot crash course', 'summary': 'Covers a comprehensive crash course on spring boot, including an introduction to spring boot, setting up and installing spring boot, mvc architecture, dependency injection, creating web applications, rest api and methods, spring data rest, securing applications, and top interview questions related to spring boot.', 'duration': 87.926, 'highlights': ['The chapter covers a comprehensive crash course on Spring Boot, including an introduction to Spring Boot, setting up and installing Spring Boot, MVC architecture, dependency injection, creating web applications, REST API and methods, Spring Data REST, securing applications, and top interview questions related to Spring Boot.', 'The session includes discussions on the market trends of Spring Boot and the differences between Spring and Spring Boot.', 'The session also covers creating a submission form in Spring Boot and connecting a database to a web application.', 'The chapter concludes with discussing top interview questions related to Spring Boot and the importance of subscribing to the Edureka YouTube channel for daily notifications on trending technologies.']}, {'end': 429.815, 'start': 100.518, 'title': 'Introduction to springboard', 'summary': 'Introduces springboard, a module of the spring framework for java development, with features including springboard cli, starter dependency, initializer, auto configuration, actuator, logging, and security. it emphasizes the benefits of springboard, such as rapid application development, good connectivity with other technologies, cloud native support, flexibility, and open-source nature. the chapter also explores the differences between spring and springboard, and provides guidance on installing and setting up spring boot.', 'duration': 329.297, 'highlights': ['Springboard features include Springboard CLI, starter dependency, initializer, auto configuration, actuator, logging, and security. The features of Springboard, such as Springboard CLI, starter dependency, initializer, auto configuration, actuator, logging, and security, are highlighted.', 'Springboard provides rapid application development and good connectivity with web technologies and databases, making it cloud native, flexible, and open-source. Java developers with Springboard knowledge can earn significant salaries. Springboard offers rapid application development, good connectivity with web technologies and databases, cloud native support, flexibility, and open-source nature, contributing to high earning potential for Java developers.', 'Springboard is less complex than the Spring framework and takes an opinionated view of the platform, while Spring is a web application framework based on Java, providing tools and libraries to create customized web applications. The differences between Springboard and Spring are highlighted, emphasizing that Springboard is less complex and takes an opinionated view, whereas Spring is a web application framework based on Java with a more customizable approach.', 'The system requirements for Spring Boot include Java 8 plus version, Spring framework 5.1.9 plus, maven 3.3 version plus, gradle 4.4 version plus, and servlet container support like Tomcat 9.0 version. The specific system requirements for Spring Boot, including Java version, Spring framework version, build support, and servlet container support, are outlined.']}], 'duration': 422.827, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s6988.jpg', 'highlights': ['The chapter covers a comprehensive crash course on Spring Boot, including MVC architecture, dependency injection, creating web applications, REST API, securing applications, and top interview questions.', 'Springboard offers rapid application development, good connectivity with web technologies and databases, cloud native support, flexibility, and open-source nature, contributing to high earning potential for Java developers.', 'The differences between Springboard and Spring are highlighted, emphasizing that Springboard is less complex and takes an opinionated view, whereas Spring is a web application framework based on Java with a more customizable approach.', 'The system requirements for Spring Boot include Java 8 plus version, Spring framework 5.1.9 plus, Maven 3.3 version plus, Gradle 4.4 version plus, and servlet container support like Tomcat 9.0 version.']}, {'end': 2078.973, 'segs': [{'end': 481.639, 'src': 'embed', 'start': 454.925, 'weight': 0, 'content': [{'end': 461.207, 'text': "So let's get started with installation and setup of springboot CLI now to install and set up the springboot CLI.", 'start': 454.925, 'duration': 6.282}, {'end': 466.028, 'text': 'You have to first download the Apache Maven and springboot CLI from the respective official website.', 'start': 461.247, 'duration': 4.781}, {'end': 470.649, 'text': "So let me first download the Apache Maven and then we'll download the springboot CLI.", 'start': 466.468, 'duration': 4.181}, {'end': 476.111, 'text': "So initially what I'm going to do is I'm going to first set up the Maven and then I'm going to set up the springboot CLI.", 'start': 471.03, 'duration': 5.081}, {'end': 481.639, 'text': "So this is from where I'm going to download the Apache Maven, right? So you basically have to download the zip file.", 'start': 476.855, 'duration': 4.784}], 'summary': 'Install and set up springboot cli using apache maven and download zip file.', 'duration': 26.714, 'max_score': 454.925, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s454925.jpg'}, {'end': 571.172, 'src': 'embed', 'start': 541.21, 'weight': 1, 'content': [{'end': 545.611, 'text': 'So basically, guys, this is where you have to add the environment variables for a maven folder, right?', 'start': 541.21, 'duration': 4.401}, {'end': 550.492, 'text': "So over here I'll add basically two variables, that is m2 underscore home and maven home variable.", 'start': 545.651, 'duration': 4.841}, {'end': 557.434, 'text': "So what I'm going to do is I'm just going to go to new over here and let's say I mentioned m2 underscore home.", 'start': 550.772, 'duration': 6.662}, {'end': 561.5, 'text': "and in variable value what I'll do is I'll basically go to browse directory.", 'start': 558.155, 'duration': 3.345}, {'end': 571.172, 'text': "I'll go to this PC and let's say I go to see file right and then what I'll do is I'll just choose Apache me and then I'll click on OK.", 'start': 562.08, 'duration': 9.092}], 'summary': 'Adding environment variables for a maven folder with m2_home and maven home variables.', 'duration': 29.962, 'max_score': 541.21, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s541210.jpg'}, {'end': 671.234, 'src': 'embed', 'start': 645.985, 'weight': 2, 'content': [{'end': 651.21, 'text': 'Right? So when I type in the command MVN hyphen version, you can see that you know Apache Maven 3.5.', 'start': 645.985, 'duration': 5.225}, {'end': 652.771, 'text': '2 has been successfully installed.', 'start': 651.21, 'duration': 1.561}, {'end': 656.714, 'text': "So that's how I is basically you can install and set up Apache Maven.", 'start': 653.191, 'duration': 3.523}, {'end': 663.02, 'text': "Now the next step is to basically download the springboard CLI tool from its official website, right? So let's just do the same.", 'start': 657.135, 'duration': 5.885}, {'end': 668.653, 'text': "So I'm just going to this particular website and let's say, you know, I download the 2.1.", 'start': 664.02, 'duration': 4.633}, {'end': 669.443, 'text': '8 release.', 'start': 668.653, 'duration': 0.79}, {'end': 671.234, 'text': 'So when I click on the 2.1.', 'start': 669.943, 'duration': 1.291}], 'summary': 'Installed apache maven 3.5.2 successfully. downloaded springboard cli tool version 2.1.8.', 'duration': 25.249, 'max_score': 645.985, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s645985.jpg'}, {'end': 819.151, 'src': 'embed', 'start': 792.785, 'weight': 3, 'content': [{'end': 797.348, 'text': "So basically if you see I'd installed in C and then we have a spring folder and then the bin folder.", 'start': 792.785, 'duration': 4.563}, {'end': 811.458, 'text': "So I'll just come out of this particular directory and then I'll change to CD spring and then I'll change to pin and now what I'll do is I'll mention the command spring hyphen hyphen version.", 'start': 797.749, 'duration': 13.709}, {'end': 818.029, 'text': 'So once I mentioned the command spring-version you can clearly see that in a spring CLI version 2.1.', 'start': 812.222, 'duration': 5.807}, {'end': 819.151, 'text': '8 release has been there.', 'start': 818.029, 'duration': 1.122}], 'summary': 'Installed spring cli version 2.1.8 in c directory', 'duration': 26.366, 'max_score': 792.785, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s792785.jpg'}, {'end': 926.562, 'src': 'embed', 'start': 902.177, 'weight': 5, 'content': [{'end': 912.266, 'text': 'Then you have to go to Eclipse Marketplace and over here what you can do is you can basically search for spring tool suit.', 'start': 902.177, 'duration': 10.089}, {'end': 914.767, 'text': "Right? So let's just search.", 'start': 913.566, 'duration': 1.201}, {'end': 917.768, 'text': 'All right.', 'start': 917.448, 'duration': 0.32}, {'end': 926.562, 'text': 'Now once you search for spring tool suit, you clearly see this particular plug-in that spring tools for for spring boot aka spring tool suit for 4.4.', 'start': 918.148, 'duration': 8.414}], 'summary': "To install spring tool suite in eclipse marketplace, search for 'spring tool suit' and install the 4.4 version.", 'duration': 24.385, 'max_score': 902.177, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s902177.jpg'}, {'end': 1019.38, 'src': 'embed', 'start': 991.081, 'weight': 6, 'content': [{'end': 993.942, 'text': "So I'm going to show you the hello world program just to make sure that you know,", 'start': 991.081, 'duration': 2.861}, {'end': 1000.023, 'text': 'you understand how to create a springboard project and what are the required necessities that you have to add to a project right?', 'start': 993.942, 'duration': 6.081}, {'end': 1001.263, 'text': "So let's get started.", 'start': 1000.323, 'duration': 0.94}, {'end': 1003.224, 'text': 'So to create a hello world program.', 'start': 1001.663, 'duration': 1.561}, {'end': 1008.465, 'text': 'What you have to do is you have to go to file and then you have to go to new, and then, once you go to new,', 'start': 1003.324, 'duration': 5.141}, {'end': 1012.006, 'text': 'you either see a spring starter project option over here else.', 'start': 1008.465, 'duration': 3.541}, {'end': 1017.578, 'text': 'What you have to do is you have to go to other and then you have to search for springboard, as you can see on my screen,', 'start': 1012.046, 'duration': 5.532}, {'end': 1019.38, 'text': 'and then you have to just choose the spring.', 'start': 1017.578, 'duration': 1.802}], 'summary': 'Demonstration of creating a hello world program in springboard project.', 'duration': 28.299, 'max_score': 991.081, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s991081.jpg'}, {'end': 1733.476, 'src': 'heatmap', 'start': 1064.255, 'weight': 1, 'content': [{'end': 1067.817, 'text': 'So this is where you have to add the dependencies guys in spring tool suit.', 'start': 1064.255, 'duration': 3.562}, {'end': 1070.178, 'text': "But yes, if you're writing a separate project file,", 'start': 1068.097, 'duration': 2.081}, {'end': 1074.2, 'text': 'then you have to copy the dependency codes from the official websites and then you have to paste it over here.', 'start': 1070.178, 'duration': 4.022}, {'end': 1077.362, 'text': 'So since you know, we know which dependencies are required.', 'start': 1074.52, 'duration': 2.842}, {'end': 1084.045, 'text': "So since I'm creating a hello world project, I wanted to run on a specific URL, right? So basically I wanted to run on a localhost.", 'start': 1077.402, 'duration': 6.643}, {'end': 1087.667, 'text': "Let's say 80 81 and slash and let's say I mentioned it to be hello.", 'start': 1084.085, 'duration': 3.582}, {'end': 1089.587, 'text': 'I wanted to run on a specific URL.', 'start': 1087.987, 'duration': 1.6}, {'end': 1091.648, 'text': 'So that means I need the web dependencies.', 'start': 1089.607, 'duration': 2.041}, {'end': 1097.429, 'text': "So I'll search for web once I search for web you see that, you know, we get spring web and spring web services.", 'start': 1092.088, 'duration': 5.341}, {'end': 1101.57, 'text': "So I'll just check in all the three of them and then I'll click on finish right?", 'start': 1097.709, 'duration': 3.861}, {'end': 1104.67, 'text': "So, guys, this is basically a simple project that I'm creating, but yes,", 'start': 1101.65, 'duration': 3.02}, {'end': 1109.531, 'text': "in further in the session you'll see much more complicated projects that will be creating, with ways, kinds of dependencies.", 'start': 1104.67, 'duration': 4.861}, {'end': 1114.712, 'text': "Now once the project is created you can see on the left hand side that you know, we've got a hello world project.", 'start': 1110.231, 'duration': 4.481}, {'end': 1121.896, 'text': 'So we have, if you see, we have an example demo and then in this particular folder we have a hello world application Java file, right?', 'start': 1115.251, 'duration': 6.645}, {'end': 1124.317, 'text': 'So let me just open that and show you so.', 'start': 1121.916, 'duration': 2.401}, {'end': 1125.718, 'text': 'in this code you can clearly see that.', 'start': 1124.317, 'duration': 1.401}, {'end': 1127.54, 'text': 'you know we see an error for the package.', 'start': 1125.718, 'duration': 1.822}, {'end': 1131.002, 'text': 'that is, you know, combat, example or demo does not exist, right?', 'start': 1127.54, 'duration': 3.462}, {'end': 1134.845, 'text': "So what I'll do is I'll just move the hello world application Java file to this particular package.", 'start': 1131.022, 'duration': 3.823}, {'end': 1138.142, 'text': 'Okay, so it says it does not exist.', 'start': 1136.261, 'duration': 1.881}, {'end': 1140.124, 'text': "So I'll just delete this particular section.", 'start': 1138.182, 'duration': 1.942}, {'end': 1143.326, 'text': "So what I do is I'll just remove the declaration of package.", 'start': 1140.644, 'duration': 2.682}, {'end': 1146.949, 'text': 'So this is how basically the application class looks guys over here.', 'start': 1143.706, 'duration': 3.243}, {'end': 1148.41, 'text': 'We have the import facility.', 'start': 1147.009, 'duration': 1.401}, {'end': 1154.194, 'text': 'So this is where from where we import basically the various dependencies that you want, and then we have another.', 'start': 1148.75, 'duration': 5.444}, {'end': 1155.955, 'text': "it's springboard application annotation.", 'start': 1154.194, 'duration': 1.761}, {'end': 1161.917, 'text': 'Well, this particular annotation is basically used to enable the auto configuration and also to indicate the application.', 'start': 1156.315, 'duration': 5.602}, {'end': 1163.718, 'text': 'that unit is a springboard application.', 'start': 1161.917, 'duration': 1.801}, {'end': 1172.662, 'text': 'Then we have a public class with the name and then we have a public static void main statement and then we have a statement which says spring application dot run and in brackets,', 'start': 1164.078, 'duration': 8.584}, {'end': 1175.163, 'text': 'hello, world application dot class dot arguments right?', 'start': 1172.662, 'duration': 2.501}, {'end': 1180.485, 'text': 'So this statement basically indicates that you know, whenever we execute this particular project automatically,', 'start': 1175.443, 'duration': 5.042}, {'end': 1182.206, 'text': 'this particular class must be executed.', 'start': 1180.485, 'duration': 1.721}, {'end': 1187.708, 'text': 'Now, but the question is how do we get to the URL and how do we mention hello world for that?', 'start': 1182.666, 'duration': 5.042}, {'end': 1192.93, 'text': 'You basically have to create a controller class, or maybe you can see that you know you have to add a new file right?', 'start': 1187.848, 'duration': 5.082}, {'end': 1195.59, 'text': "So for that, what I'll do is I'll just right click over here.", 'start': 1192.95, 'duration': 2.64}, {'end': 1202.973, 'text': "And then what I'll do is I'll add a new class, right? So let's say I mentioned the class name to be configuration.", 'start': 1196.251, 'duration': 6.722}, {'end': 1208.715, 'text': "Right, so we'll just mention app configuration and then we can choose the modifiers over here.", 'start': 1203.573, 'duration': 5.142}, {'end': 1212.536, 'text': "I'll let it be public and let's say click on finish right?", 'start': 1208.755, 'duration': 3.781}, {'end': 1215.278, 'text': 'So once I click on finish, you can see that you know automatically.', 'start': 1212.556, 'duration': 2.722}, {'end': 1217.178, 'text': 'we have got this app configuration class.', 'start': 1215.278, 'duration': 1.9}, {'end': 1221.26, 'text': 'Now what we have to do is you basically have to insert the URL right?', 'start': 1217.658, 'duration': 3.602}, {'end': 1225.201, 'text': 'So for that we have to use the ad rate request mapping annotation right?', 'start': 1221.28, 'duration': 3.921}, {'end': 1230.414, 'text': "So for that I'll mention at the rate Request mapping and in the brackets.", 'start': 1225.221, 'duration': 5.193}, {'end': 1235.078, 'text': "I'll basically mention the text that is hello, right? So I'll mention slash hello over here.", 'start': 1230.554, 'duration': 4.524}, {'end': 1241.803, 'text': "And then what I'll do is I'll have to mention the text right so to mention the text will basically mention public string.", 'start': 1236.579, 'duration': 5.224}, {'end': 1245.766, 'text': "I mentioned string and let's say we mentioned a method.", 'start': 1242.804, 'duration': 2.962}, {'end': 1252.372, 'text': "Hello, right and in the brackets what I'll mention is return.", 'start': 1245.886, 'duration': 6.486}, {'end': 1256.395, 'text': "Let's say hello world.", 'start': 1254.053, 'duration': 2.342}, {'end': 1260.027, 'text': "and then I'll just close this particular statement.", 'start': 1257.603, 'duration': 2.424}, {'end': 1262.731, 'text': 'and over here you clearly see an error on request mapping, right?', 'start': 1260.027, 'duration': 2.704}, {'end': 1266.176, 'text': "So that's because you know we've not imported the required libraries for request mapping.", 'start': 1262.771, 'duration': 3.405}, {'end': 1271.103, 'text': "So for that what I'll do is I'll just put my cursor over here and then you see that, you know, we'll get a suggestion.", 'start': 1266.196, 'duration': 4.907}, {'end': 1273.006, 'text': "So let's just wait for that to come.", 'start': 1271.604, 'duration': 1.402}, {'end': 1279.901, 'text': "So I'll just click on import request mapping and then you can see that you know the error, that at the rate, request mapping has gone right?", 'start': 1274.157, 'duration': 5.744}, {'end': 1284.504, 'text': "So what's basically happening over here is basically that you know I'm mentioning the URL.", 'start': 1279.941, 'duration': 4.563}, {'end': 1286.965, 'text': "So what I'll do is I'll mention localhost colon.", 'start': 1284.584, 'duration': 2.381}, {'end': 1292.569, 'text': "I'll mention the port number slash and then if you mention hello, it has to return hello world.", 'start': 1287.306, 'duration': 5.263}, {'end': 1293.53, 'text': 'So over here.', 'start': 1292.949, 'duration': 0.581}, {'end': 1296.311, 'text': "there's one more thing that you have to mention is the rest controller.", 'start': 1293.53, 'duration': 2.781}, {'end': 1299.073, 'text': "that is because you know we mentioned we're playing around with URLs right?", 'start': 1296.311, 'duration': 2.762}, {'end': 1301.535, 'text': "So what I'll do is above the public last statement.", 'start': 1299.373, 'duration': 2.162}, {'end': 1311.078, 'text': "I just mentioned rest controller right and then I'll import the required annotation and then that's all now once that is done.", 'start': 1301.655, 'duration': 9.423}, {'end': 1318.401, 'text': 'You can just save your file and then you can go and execute, but this particular application will initially run on localhost 8080,', 'start': 1311.118, 'duration': 7.283}, {'end': 1321.762, 'text': 'but it may often happen that you know our 8080 port is busy right?', 'start': 1318.401, 'duration': 3.361}, {'end': 1323.863, 'text': 'So for that we have to configure the port.', 'start': 1321.802, 'duration': 2.061}, {'end': 1329.845, 'text': 'now. to configure the port, what you have to do is you have to go to the source main resources folder where you see application properties file.', 'start': 1323.863, 'duration': 5.982}, {'end': 1333.707, 'text': 'But before that, let me just zoom in a little bit so that the code is clear to you guys.', 'start': 1330.185, 'duration': 3.522}, {'end': 1340.172, 'text': "Right. so I'll just go to the application properties file and then I'll mention over here server dot port.", 'start': 1334.287, 'duration': 5.885}, {'end': 1344.731, 'text': "Let's say 8081 right, and then I'll click on save right.", 'start': 1341.03, 'duration': 3.701}, {'end': 1349.213, 'text': 'So basically our application will run on localhost colon 8081 slash.', 'start': 1344.772, 'duration': 4.441}, {'end': 1352.274, 'text': 'Hello, and if it executes will get an output as hello world.', 'start': 1349.233, 'duration': 3.041}, {'end': 1356.576, 'text': "So that's how, guys, basically you can write a code for a hello world application.", 'start': 1352.755, 'duration': 3.821}, {'end': 1360.018, 'text': 'now, before I execute, I would just like to go through all the steps that we did.', 'start': 1356.576, 'duration': 3.442}, {'end': 1363.399, 'text': 'So initially we just created a project using the spring tool suit.', 'start': 1360.378, 'duration': 3.021}, {'end': 1370.143, 'text': 'So we went to file and then we chose spring starter project and over there we mentioned the group ID, artifact, ID name description and so on.', 'start': 1363.539, 'duration': 6.604}, {'end': 1375.348, 'text': 'right after that we added the required dependencies that will basically go into the form dot XML file.', 'start': 1370.143, 'duration': 5.205}, {'end': 1377.329, 'text': 'now talking about the form dot XML file.', 'start': 1375.348, 'duration': 1.981}, {'end': 1381.353, 'text': "Let me just open the file and show you once so let's just wait for that to happen.", 'start': 1377.369, 'duration': 3.984}, {'end': 1383.111, 'text': 'All right.', 'start': 1382.811, 'duration': 0.3}, {'end': 1385.213, 'text': 'Now, if I just extend my screen,', 'start': 1383.452, 'duration': 1.761}, {'end': 1391.357, 'text': 'you can clearly see that you know the palm dot XML file is basically a file where all your metadata is present regarding the project right?', 'start': 1385.213, 'duration': 6.144}, {'end': 1395.04, 'text': 'So you have basically the parent, the group ID, and then in the group ID.', 'start': 1391.597, 'duration': 3.443}, {'end': 1396.521, 'text': 'It basically has all the details.', 'start': 1395.14, 'duration': 1.381}, {'end': 1398.402, 'text': 'like you know, what group ID did we mention?', 'start': 1396.521, 'duration': 1.881}, {'end': 1399.683, 'text': "What's the artifact ID?", 'start': 1398.422, 'duration': 1.261}, {'end': 1400.544, 'text': "What's the version?", 'start': 1399.703, 'duration': 0.841}, {'end': 1401.865, 'text': "What's the project name?", 'start': 1400.904, 'duration': 0.961}, {'end': 1404.046, 'text': 'And then what is the Java version which is getting used?', 'start': 1401.985, 'duration': 2.061}, {'end': 1405.747, 'text': 'What are the dependencies added?', 'start': 1404.366, 'duration': 1.381}, {'end': 1408.629, 'text': 'like you know, Jersey web web services test and so on.', 'start': 1405.747, 'duration': 2.882}, {'end': 1410.351, 'text': 'and then what are the plugins used?', 'start': 1408.629, 'duration': 1.722}, {'end': 1412.192, 'text': 'and then what is the springboard version and so on.', 'start': 1410.351, 'duration': 1.841}, {'end': 1418.601, 'text': "So, if you're working on any project, then your form file is the go-to solution to find out the metadata for the project right?", 'start': 1412.692, 'duration': 5.909}, {'end': 1423.288, 'text': 'So often what happens is that when you work on large projects, most of the time we get dependency issues.', 'start': 1418.641, 'duration': 4.647}, {'end': 1425.612, 'text': 'So this is where you solve the dependency issues.', 'start': 1423.589, 'duration': 2.023}, {'end': 1428.136, 'text': "So let's go back to our application over here.", 'start': 1426.133, 'duration': 2.003}, {'end': 1435.882, 'text': "And then over here we saw that you know we have the address springboard application annotation to just indicate that you know it's an springboard application.", 'start': 1428.556, 'duration': 7.326}, {'end': 1443.009, 'text': 'and then we have a spring application dot run statement which says that you know this particular class has to be executed when we execute this particular project.', 'start': 1435.882, 'duration': 7.127}, {'end': 1448.013, 'text': 'and then we have an app configuration class which is basically the configuration file to this particular class,', 'start': 1443.009, 'duration': 5.004}, {'end': 1450.275, 'text': 'and this will help us handle the HTTP request.', 'start': 1448.013, 'duration': 2.262}, {'end': 1454.498, 'text': "So we are I'm just using the request mapping annotation to basically retrieve the text.", 'start': 1450.715, 'duration': 3.783}, {'end': 1455.159, 'text': 'Hello world.', 'start': 1454.598, 'duration': 0.561}, {'end': 1458.297, 'text': 'So now let me just execute this particular project.', 'start': 1456.152, 'duration': 2.145}, {'end': 1465.793, 'text': 'So for that you have to right click over here on the project and then you can choose run as and then you can choose spring boot app.', 'start': 1458.317, 'duration': 7.476}, {'end': 1475.701, 'text': 'So, to resolve this error, what I done is that you know, I just added the package com.example.demo back to this particular file,', 'start': 1469.116, 'duration': 6.585}, {'end': 1480.265, 'text': 'and only since you know we have the main class and the app configuration class inside this package.', 'start': 1475.701, 'duration': 4.564}, {'end': 1485.429, 'text': "It's important to mention the package name, right? So we'll mention the package name to be com.example.demo.", 'start': 1480.585, 'duration': 4.844}, {'end': 1488.912, 'text': "That's basically a package name and then the rest of the code remains the same.", 'start': 1485.449, 'duration': 3.463}, {'end': 1493.836, 'text': "Now what I'll do is I'll just right click over here go to run as and choose spring boot app.", 'start': 1489.452, 'duration': 4.384}, {'end': 1499.02, 'text': 'All right.', 'start': 1498.78, 'duration': 0.24}, {'end': 1503.283, 'text': 'Now once I click on spring boot app, you can see that you know application has started over here.', 'start': 1499.06, 'duration': 4.223}, {'end': 1509.587, 'text': 'You can clearly see the output that you know Tomcat started on port number 80 81 and our application hello world has started.', 'start': 1503.303, 'duration': 6.284}, {'end': 1517.272, 'text': "So I just open a new tab so that you know, the outputs are clear to you and then I'll mention localhost colon 80 81 slash.", 'start': 1509.987, 'duration': 7.285}, {'end': 1523.856, 'text': 'Hello right now once I mentioned hello, you can clearly see an output of hello world.', 'start': 1519.113, 'duration': 4.743}, {'end': 1526.135, 'text': 'So I hope this part is clear to you guys.', 'start': 1524.514, 'duration': 1.621}, {'end': 1531.219, 'text': 'I hope you have understood how to create a hello world application and how you can create a simple springboard project.', 'start': 1526.175, 'duration': 5.044}, {'end': 1533.981, 'text': "So I'll just basically close this application running.", 'start': 1531.819, 'duration': 2.162}, {'end': 1537.183, 'text': "So basically I'll stop this application running and then I'll close this part.", 'start': 1534.001, 'duration': 3.182}, {'end': 1544.909, 'text': "Let's move into the next topic for today's session.", 'start': 1542.547, 'duration': 2.362}, {'end': 1546.23, 'text': 'That is MVC.', 'start': 1544.949, 'duration': 1.281}, {'end': 1552.635, 'text': 'now MVC is one of the most important topics that you have to understand springboard, because you know springboard is completely based on spring.', 'start': 1546.23, 'duration': 6.405}, {'end': 1555.691, 'text': 'and spring is completely based on MVC.', 'start': 1553.328, 'duration': 2.363}, {'end': 1557.253, 'text': 'That is the model view controller.', 'start': 1555.751, 'duration': 1.502}, {'end': 1563.92, 'text': "So, without any further due, let's get started with what is MVC or what is model view controller.", 'start': 1557.653, 'duration': 6.267}, {'end': 1569.006, 'text': 'now, model view controller is basically a design pattern which is basically used to build applications.', 'start': 1563.92, 'duration': 5.086}, {'end': 1574.297, 'text': 'Now spring framework uses this model view controller to basically create applications.', 'start': 1569.736, 'duration': 4.561}, {'end': 1578.918, 'text': 'It provides features like, you know inversion of control dependency injection and so on.', 'start': 1574.937, 'duration': 3.981}, {'end': 1586.239, 'text': 'So the spring MVC provides a dignified solution to use MVC in spring framework by the help of the dispatcher servlet.', 'start': 1579.318, 'duration': 6.921}, {'end': 1593.521, 'text': 'now, in this case, the dispatcher servlet is a class that receives the incoming request and maps it to the right resource, such as the controllers,', 'start': 1586.239, 'duration': 7.282}, {'end': 1594.461, 'text': 'models and views.', 'start': 1593.521, 'duration': 0.94}, {'end': 1601.726, 'text': "Right? So I hope that you've understood what MVC stands for M stands for models V stands for views and C stands for controllers.", 'start': 1594.941, 'duration': 6.785}, {'end': 1603.328, 'text': 'So I hope that part is clear.', 'start': 1602.127, 'duration': 1.201}, {'end': 1609.532, 'text': "So now that you know, what is model view controller in short, let's discuss the four main components of model view controller.", 'start': 1603.768, 'duration': 5.764}, {'end': 1612.815, 'text': 'That is the model controller view and the front controller.', 'start': 1609.552, 'duration': 3.263}, {'end': 1621.322, 'text': 'So the model basically contains the code data of the application and data can be either a single object or a group of objects coming to controller.', 'start': 1613.215, 'duration': 8.107}, {'end': 1628.509, 'text': 'This basically contains the business logic of an application and can use the aggregate controller annotation to mark the class as controller.', 'start': 1621.543, 'duration': 6.966}, {'end': 1629.93, 'text': 'Coming to view.', 'start': 1628.989, 'duration': 0.941}, {'end': 1638.074, 'text': 'basically, the view is used to represent the information in a particular format, and here you can use the JSP plus JSTL to create a view page.', 'start': 1629.93, 'duration': 8.144}, {'end': 1644.678, 'text': 'and finally, coming to the front controller, in spring web MVC, the dispatcher servlet class works as the front-end controller.', 'start': 1638.074, 'duration': 6.604}, {'end': 1651.31, 'text': "So I hope that you've understood the different components of the model view controller that is the model controller view and the front controller.", 'start': 1645.245, 'duration': 6.065}, {'end': 1653.772, 'text': 'So now that you know what the components are.', 'start': 1651.67, 'duration': 2.102}, {'end': 1656.834, 'text': "Let's take a look at the workflow of the model view controller.", 'start': 1654.172, 'duration': 2.662}, {'end': 1659.116, 'text': 'So, as you can see on my screen,', 'start': 1657.254, 'duration': 1.862}, {'end': 1665.641, 'text': 'all the incoming requests are obstructed by the dispatcher servlet that works as the front-end controller or the front controller.', 'start': 1659.116, 'duration': 6.525}, {'end': 1671.145, 'text': 'the dispatcher servlet gets an entry of the handler mapping from the XML file and forwards to request to the controller.', 'start': 1665.641, 'duration': 5.504}, {'end': 1674.568, 'text': 'After that the controller returns an object of the model and view.', 'start': 1671.665, 'duration': 2.903}, {'end': 1675.508, 'text': "So don't worry guys.", 'start': 1674.768, 'duration': 0.74}, {'end': 1680.993, 'text': "I'll be talking more about model and view when we get into the hands-on part of it and now coming back to the workflow.", 'start': 1675.568, 'duration': 5.425}, {'end': 1688.119, 'text': 'Finally the dispatcher server checks the entry of the view resolver in the XML file and then invokes the specified view component.', 'start': 1681.393, 'duration': 6.726}, {'end': 1691.822, 'text': 'So, guys, this is the workflow of the model view controller, right?', 'start': 1688.539, 'duration': 3.283}, {'end': 1696.405, 'text': 'So that was all about the workflow of the spring MVC or the spring model view controller.', 'start': 1691.882, 'duration': 4.523}, {'end': 1699.428, 'text': "So I hope that you've understood what is the model view controller.", 'start': 1696.726, 'duration': 2.702}, {'end': 1700.566, 'text': 'So over here.', 'start': 1700.006, 'duration': 0.56}, {'end': 1701.747, 'text': 'you basically have to understand.', 'start': 1700.566, 'duration': 1.181}, {'end': 1708.331, 'text': 'you know, springboard is based on spring and spring is based on the model view controller, but the model and view object comes into the picture.', 'start': 1701.747, 'duration': 6.584}, {'end': 1716.195, 'text': 'Now these model and view objects are basically considered to see what resources are coming to the application and what the application has to look like right?', 'start': 1708.851, 'duration': 7.344}, {'end': 1719.717, 'text': 'So, basically, you have a structure, which is the model, and then you have a view.', 'start': 1716.215, 'duration': 3.502}, {'end': 1726.741, 'text': 'the view is basically how the user sees the application and the controller basically handles all the actions happening in the application.', 'start': 1719.717, 'duration': 7.024}, {'end': 1728.742, 'text': 'So I hope that part is clear to you guys.', 'start': 1727.181, 'duration': 1.561}, {'end': 1730.794, 'text': "All right, so that's great.", 'start': 1729.773, 'duration': 1.021}, {'end': 1733.476, 'text': 'So that was about the model view controller guys.', 'start': 1731.094, 'duration': 2.382}], 'summary': 'Creating a hello world project in spring tool suit, adding dependencies, setting up url, and explaining mvc workflow.', 'duration': 669.221, 'max_score': 1064.255, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s1064255.jpg'}, {'end': 1104.67, 'src': 'embed', 'start': 1074.52, 'weight': 7, 'content': [{'end': 1077.362, 'text': 'So since you know, we know which dependencies are required.', 'start': 1074.52, 'duration': 2.842}, {'end': 1084.045, 'text': "So since I'm creating a hello world project, I wanted to run on a specific URL, right? So basically I wanted to run on a localhost.", 'start': 1077.402, 'duration': 6.643}, {'end': 1087.667, 'text': "Let's say 80 81 and slash and let's say I mentioned it to be hello.", 'start': 1084.085, 'duration': 3.582}, {'end': 1089.587, 'text': 'I wanted to run on a specific URL.', 'start': 1087.987, 'duration': 1.6}, {'end': 1091.648, 'text': 'So that means I need the web dependencies.', 'start': 1089.607, 'duration': 2.041}, {'end': 1097.429, 'text': "So I'll search for web once I search for web you see that, you know, we get spring web and spring web services.", 'start': 1092.088, 'duration': 5.341}, {'end': 1101.57, 'text': "So I'll just check in all the three of them and then I'll click on finish right?", 'start': 1097.709, 'duration': 3.861}, {'end': 1104.67, 'text': "So, guys, this is basically a simple project that I'm creating, but yes,", 'start': 1101.65, 'duration': 3.02}], 'summary': 'Creating a hello world project with specific url on localhost using spring web and spring web services.', 'duration': 30.15, 'max_score': 1074.52, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s1074520.jpg'}, {'end': 1480.265, 'src': 'embed', 'start': 1450.715, 'weight': 4, 'content': [{'end': 1454.498, 'text': "So we are I'm just using the request mapping annotation to basically retrieve the text.", 'start': 1450.715, 'duration': 3.783}, {'end': 1455.159, 'text': 'Hello world.', 'start': 1454.598, 'duration': 0.561}, {'end': 1458.297, 'text': 'So now let me just execute this particular project.', 'start': 1456.152, 'duration': 2.145}, {'end': 1465.793, 'text': 'So for that you have to right click over here on the project and then you can choose run as and then you can choose spring boot app.', 'start': 1458.317, 'duration': 7.476}, {'end': 1475.701, 'text': 'So, to resolve this error, what I done is that you know, I just added the package com.example.demo back to this particular file,', 'start': 1469.116, 'duration': 6.585}, {'end': 1480.265, 'text': 'and only since you know we have the main class and the app configuration class inside this package.', 'start': 1475.701, 'duration': 4.564}], 'summary': 'Using request mapping annotation to retrieve text, resolving error by adding package com.example.demo.', 'duration': 29.55, 'max_score': 1450.715, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s1450715.jpg'}, {'end': 1593.521, 'src': 'embed', 'start': 1563.92, 'weight': 9, 'content': [{'end': 1569.006, 'text': 'now, model view controller is basically a design pattern which is basically used to build applications.', 'start': 1563.92, 'duration': 5.086}, {'end': 1574.297, 'text': 'Now spring framework uses this model view controller to basically create applications.', 'start': 1569.736, 'duration': 4.561}, {'end': 1578.918, 'text': 'It provides features like, you know inversion of control dependency injection and so on.', 'start': 1574.937, 'duration': 3.981}, {'end': 1586.239, 'text': 'So the spring MVC provides a dignified solution to use MVC in spring framework by the help of the dispatcher servlet.', 'start': 1579.318, 'duration': 6.921}, {'end': 1593.521, 'text': 'now, in this case, the dispatcher servlet is a class that receives the incoming request and maps it to the right resource, such as the controllers,', 'start': 1586.239, 'duration': 7.282}], 'summary': 'Spring mvc uses model-view-controller design pattern to build applications, including features like inversion of control and dependency injection.', 'duration': 29.601, 'max_score': 1563.92, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s1563920.jpg'}, {'end': 1901.64, 'src': 'embed', 'start': 1873.762, 'weight': 11, 'content': [{'end': 1878.523, 'text': 'Well, the injector class is responsible for injecting the service class object into the client class.', 'start': 1873.762, 'duration': 4.761}, {'end': 1883.747, 'text': 'So we have mainly three classes, that is, the client class, the service class and the injector class.', 'start': 1878.983, 'duration': 4.764}, {'end': 1885.928, 'text': 'the client class is basically the dependent class.', 'start': 1883.747, 'duration': 2.181}, {'end': 1888.57, 'text': 'the service class provides a service to the client class.', 'start': 1885.928, 'duration': 2.642}, {'end': 1895.696, 'text': 'So basically the client class uses the service class and the injector class basically injects the service class object into the client class.', 'start': 1888.931, 'duration': 6.765}, {'end': 1901.64, 'text': 'So I hope that you know you have understood what is dependency injection in short and what are the different classes involved in it.', 'start': 1896.136, 'duration': 5.504}], 'summary': 'Dependency injection involves client, service, and injector classes for injecting service objects.', 'duration': 27.878, 'max_score': 1873.762, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s1873762.jpg'}, {'end': 1934.808, 'src': 'embed', 'start': 1908.425, 'weight': 12, 'content': [{'end': 1913.129, 'text': 'So the principle on which the dependency injection is based on is the inversion of control.', 'start': 1908.425, 'duration': 4.704}, {'end': 1916.632, 'text': 'now, if you ask me what its inversion of control, then I can see that you know.', 'start': 1913.129, 'duration': 3.503}, {'end': 1918.014, 'text': 'as the name suggests,', 'start': 1916.632, 'duration': 1.382}, {'end': 1925.46, 'text': 'inversion of control is basically used to invert different kinds of additional responsibilities of a class rather than the main responsibility itself.', 'start': 1918.014, 'duration': 7.446}, {'end': 1934.808, 'text': 'So, if I have to explain you in simpler terms and consider an example wherein you have the ability to cook According to the IOC principle or the inversion of control principle,', 'start': 1925.941, 'duration': 8.867}], 'summary': 'Dependency injection is based on inversion of control, used to invert additional responsibilities of a class.', 'duration': 26.383, 'max_score': 1908.425, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s1908425.jpg'}, {'end': 1998.946, 'src': 'embed', 'start': 1974.693, 'weight': 13, 'content': [{'end': 1981.56, 'text': 'So class should concentrate on fulfilling its responsibilities like the flow of application and should not concentrate on creating objects.', 'start': 1974.693, 'duration': 6.867}, {'end': 1985.296, 'text': 'So guys this was basically the idea behind dependency injection.', 'start': 1982.193, 'duration': 3.103}, {'end': 1988.558, 'text': "Now, let's take a look at the types of dependency injection.", 'start': 1985.696, 'duration': 2.862}, {'end': 1993.002, 'text': 'Now there are mainly three types of dependency injection, that is, the constructor injection,', 'start': 1988.918, 'duration': 4.084}, {'end': 1996.705, 'text': 'the center injection or the property injection and the interface injection.', 'start': 1993.002, 'duration': 3.703}, {'end': 1998.946, 'text': 'Talking about the constructor injection.', 'start': 1997.305, 'duration': 1.641}], 'summary': 'Class should focus on responsibilities, not object creation. three types of dependency injection: constructor, setter, interface.', 'duration': 24.253, 'max_score': 1974.693, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s1974693.jpg'}, {'end': 2074.11, 'src': 'embed', 'start': 2045.287, 'weight': 14, 'content': [{'end': 2048.15, 'text': 'now, before I list down the benefits of dependency injection,', 'start': 2045.287, 'duration': 2.863}, {'end': 2054.338, 'text': 'Let me explain you the need for this injection on an industry level to help you understand the benefits better.', 'start': 2048.471, 'duration': 5.867}, {'end': 2060.165, 'text': 'consider the scenario where you have an email class whose sole responsibility is to take care of the emails received.', 'start': 2054.338, 'duration': 5.827}, {'end': 2066.888, 'text': 'Now this class will have objects such as the to email address, the from email address, the subject and the body of the email.', 'start': 2060.545, 'duration': 6.343}, {'end': 2071.889, 'text': 'now, if the company wants to save text and audio messages, do you think this class can save the message??', 'start': 2066.888, 'duration': 5.001}, {'end': 2074.11, 'text': 'Well, I would say the answer is no.', 'start': 2072.25, 'duration': 1.86}], 'summary': 'Dependency injection allows for flexibility and scalability in handling different types of messages, enhancing the functionality of classes.', 'duration': 28.823, 'max_score': 2045.287, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2045287.jpg'}], 'start': 429.815, 'title': 'Springboot cli, sts installation, mvc, and dependency injection', 'summary': 'Covers installing springboot cli, setting up sts, creating a spring boot application, understanding mvc, and delving into dependency injection, including types, principles, and industry-level need.', 'chapters': [{'end': 834.308, 'start': 429.815, 'title': 'Install and set up springboot cli', 'summary': 'Covers the process of installing and setting up springboot cli, including downloading apache maven and springboot cli, setting up environment variables, and verifying the installation using commands, ultimately installing apache maven 3.5.2 and spring cli version 2.1.8.', 'duration': 404.493, 'highlights': ['The process involves downloading Apache Maven and Springboot CLI from their respective official websites.', "Setting up environment variables involves adding 'm2_home' and 'maven_home' variables for Apache Maven and updating the path variable.", "To verify the installation, the 'mvn -version' command is used, confirming the successful installation of Apache Maven 3.5.2.", "The installation of Spring CLI version 2.1.8 is verified using the 'spring --version' command, confirming the successful installation.", "To execute a Springboot project using Springboot CLI, the command 'mvn spring-boot:run' is utilized."]}, {'end': 1221.26, 'start': 834.368, 'title': 'Installing spring tool suit and creating hello world program', 'summary': 'Covers the installation process of spring tool suit in eclipse ide, including searching, installing, and setting it up, and then proceeds with creating a hello world program, defining its structure, adding dependencies, and creating a controller class.', 'duration': 386.892, 'highlights': ["The installation process of Spring Tool Suit in Eclipse IDE involves searching for the plugin in the Eclipse Marketplace, selecting the appropriate plugin, and clicking on the install button. The process involves going to the Eclipse Marketplace, searching for 'spring tool suit', selecting the appropriate plugin, and clicking on the install button. Once installed, it can be used within Eclipse IDE.", 'The process of creating a Hello World program involves setting up a new Spring Starter Project, defining project details such as Group ID, Artifact ID, and description, choosing dependencies like spring web, and creating a controller class. The process includes setting up a new Spring Starter Project, defining project details, choosing dependencies like spring web, and creating a controller class to handle the URL routing.', 'The creation of the Hello World program involves adding the necessary dependencies for the project, such as spring web, to enable the program to run on a specific URL. The addition of dependencies, such as spring web, allows the program to run on a specified URL, like localhost:8081/hello.']}, {'end': 1726.741, 'start': 1221.28, 'title': 'Creating a spring boot application and understanding mvc', 'summary': 'Explains the process of creating a spring boot application, including setting up the project, resolving dependency issues, and configuring the port. furthermore, it delves into the significance of the model-view-controller (mvc) design pattern in spring, detailing its components and workflow.', 'duration': 505.461, 'highlights': ['The chapter explains the process of creating a Spring Boot application, including setting up the project, resolving dependency issues, and configuring the port. It covers creating a project using the Spring Tool Suite, adding dependencies to the pom.xml file, and configuring the port to run the application on localhost.', 'It delves into the significance of the Model-View-Controller (MVC) design pattern in Spring, detailing its components and workflow. The chapter discusses the Model-View-Controller (MVC) design pattern, its components (model, controller, view, and front controller), and provides an overview of the MVC workflow.', 'Spring MVC provides a dignified solution to use MVC in the Spring framework by the help of the dispatcher servlet. Spring MVC uses the dispatcher servlet as the front-end controller to receive incoming requests and map them to the right resources, such as controllers, models, and views.']}, {'end': 2078.973, 'start': 1727.181, 'title': 'Dependency injection overview', 'summary': 'Explains the concept of dependency injection, the types of dependency injection (constructor, setter, and interface), the principle of inversion of control, and the benefits of dependency injection, with an emphasis on the industry-level need. it also introduces the classes involved in dependency injection and provides an analogy to illustrate the principle of inversion of control.', 'duration': 351.792, 'highlights': ['Dependency injection is the ability of an object to supply dependencies of another object, involving the client class, the service class, and the injector class. It explains the concept of dependency injection involving the client class, the service class, and the injector class. It outlines the roles of each class in the dependency injection process.', 'The principle on which dependency injection is based on is the inversion of control, which allows inverting different kinds of additional responsibilities of a class, exemplified by an analogy of ordering food instead of cooking. It elaborates on the principle of inversion of control, providing an analogy to illustrate the concept. It emphasizes the concept of inverting additional responsibilities of a class and focusing on the main work.', 'The chapter explains the three types of dependency injection: constructor injection, setter injection or property injection, and interface injection. It details the three types of dependency injection: constructor injection, setter injection or property injection, and interface injection, outlining the method of supplying dependencies in each type.', "It introduces the need for dependency injection on an industry level using the example of an email class's limitations in handling text and audio messages, setting the stage for explaining the benefits of dependency injection. It introduces the industry-level need for dependency injection, providing an example of an email class's limitations in handling text and audio messages. It creates a context for explaining the benefits of dependency injection."]}], 'duration': 1649.158, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s429815.jpg', 'highlights': ['The process involves downloading Apache Maven and Springboot CLI from their respective official websites.', "Setting up environment variables involves adding 'm2_home' and 'maven_home' variables for Apache Maven and updating the path variable.", "To verify the installation, the 'mvn -version' command is used, confirming the successful installation of Apache Maven 3.5.2.", "The installation of Spring CLI version 2.1.8 is verified using the 'spring --version' command, confirming the successful installation.", "To execute a Springboot project using Springboot CLI, the command 'mvn spring-boot:run' is utilized.", 'The installation process of Spring Tool Suit in Eclipse IDE involves searching for the plugin in the Eclipse Marketplace, selecting the appropriate plugin, and clicking on the install button.', 'The process of creating a Hello World program involves setting up a new Spring Starter Project, defining project details such as Group ID, Artifact ID, and description, choosing dependencies like spring web, and creating a controller class.', 'The creation of the Hello World program involves adding the necessary dependencies for the project, such as spring web, to enable the program to run on a specific URL.', 'The chapter explains the process of creating a Spring Boot application, including setting up the project, resolving dependency issues, and configuring the port.', 'It delves into the significance of the Model-View-Controller (MVC) design pattern in Spring, detailing its components and workflow.', 'Spring MVC provides a dignified solution to use MVC in the Spring framework by the help of the dispatcher servlet.', 'Dependency injection is the ability of an object to supply dependencies of another object, involving the client class, the service class, and the injector class.', 'The principle on which dependency injection is based on is the inversion of control, which allows inverting different kinds of additional responsibilities of a class, exemplified by an analogy of ordering food instead of cooking.', 'The chapter explains the three types of dependency injection: constructor injection, setter injection or property injection, and interface injection.', "It introduces the need for dependency injection on an industry level using the example of an email class's limitations in handling text and audio messages, setting the stage for explaining the benefits of dependency injection."]}, {'end': 2956.308, 'segs': [{'end': 2123.128, 'src': 'embed', 'start': 2097.36, 'weight': 0, 'content': [{'end': 2101.621, 'text': 'You do not have to recreate the class which will further help you in lot of ways on a production level.', 'start': 2097.36, 'duration': 4.261}, {'end': 2109.484, 'text': 'So if I have to summarize the benefits of dependency injection for you, then I would say it enables an easy way to interact with the components.', 'start': 2102.062, 'duration': 7.422}, {'end': 2111.845, 'text': 'the applications can be easily extended.', 'start': 2109.484, 'duration': 2.361}, {'end': 2115.887, 'text': 'It makes unit testing much easier and reduces the boilerplate code.', 'start': 2112.206, 'duration': 3.681}, {'end': 2118.627, 'text': 'So guys that was all about dependency injection.', 'start': 2116.247, 'duration': 2.38}, {'end': 2121.348, 'text': "I hope you've understood, you know, what was dependency injection.", 'start': 2118.787, 'duration': 2.561}, {'end': 2122.208, 'text': 'Why is it used??', 'start': 2121.428, 'duration': 0.78}, {'end': 2123.128, 'text': 'Where is it used??', 'start': 2122.328, 'duration': 0.8}], 'summary': 'Dependency injection enables easy interaction with components, extends applications, eases unit testing, and reduces boilerplate code.', 'duration': 25.768, 'max_score': 2097.36, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2097360.jpg'}, {'end': 2160.456, 'src': 'embed', 'start': 2134.91, 'weight': 1, 'content': [{'end': 2139.771, 'text': "So for that I'll go back to my Eclipse ID and now let's say we create a new project.", 'start': 2134.91, 'duration': 4.861}, {'end': 2141.291, 'text': "So for that I'll go to file.", 'start': 2140.131, 'duration': 1.16}, {'end': 2144.072, 'text': "I'll go to new and then I choose spring start a project.", 'start': 2141.411, 'duration': 2.661}, {'end': 2158.535, 'text': "Right. and let's say we mentioned the name to be Dependency demo and then our group is com.example and the package is com.example.demo again,", 'start': 2144.947, 'duration': 13.588}, {'end': 2160.456, 'text': "and then what I'll do is I'll click on next.", 'start': 2158.535, 'duration': 1.921}], 'summary': 'Creating a new spring project named dependency demo with com.example group and com.example.demo package in eclipse id.', 'duration': 25.546, 'max_score': 2134.91, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2134910.jpg'}, {'end': 2339.635, 'src': 'embed', 'start': 2304.839, 'weight': 2, 'content': [{'end': 2310.36, 'text': 'where you do not want to create objects manually but you want to get it at the runtime or you maybe you want to recreate them right?', 'start': 2304.839, 'duration': 5.521}, {'end': 2316.763, 'text': "So this is where basically, dependency injection comes into the picture, where you want to get the objects whenever there's a requirement.", 'start': 2310.661, 'duration': 6.102}, {'end': 2320.844, 'text': "So now let's see how we can achieve that with the help of dependency injection.", 'start': 2317.223, 'duration': 3.621}, {'end': 2328.288, 'text': "So what I'll do is I'll first go back to my application file and then what I'll do is I'll basically change the run line in the application class file right?", 'start': 2321.264, 'duration': 7.024}, {'end': 2334.652, 'text': 'So over here, if you see, we have spring application dot run and then we have the application class name and the arguments right?', 'start': 2328.608, 'duration': 6.044}, {'end': 2339.635, 'text': "So now what I'm going to do is I'm just going to basically change it to configurable context right?", 'start': 2334.972, 'duration': 4.663}], 'summary': 'Dependency injection allows dynamic object creation at runtime for flexibility and efficiency.', 'duration': 34.796, 'max_score': 2304.839, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2304839.jpg'}, {'end': 2504.584, 'src': 'embed', 'start': 2475.643, 'weight': 5, 'content': [{'end': 2480.085, 'text': 'will return an output that you know customers object return successfully if our code runs fine.', 'start': 2475.643, 'duration': 4.442}, {'end': 2486.931, 'text': 'Next what you have to do is you have to go back to the application file again and then you have to basically mention the methods name over here.', 'start': 2480.585, 'duration': 6.346}, {'end': 2491.174, 'text': 'That is C dot display that we had just created, right?', 'start': 2487.011, 'duration': 4.163}, {'end': 2496.159, 'text': "So, over here you're basically calling the object of the customers class with the reference of the display method.", 'start': 2491.214, 'duration': 4.945}, {'end': 2498.76, 'text': "So that's how basically you can use now.", 'start': 2496.699, 'duration': 2.061}, {'end': 2501.082, 'text': "Let's execute the project and see what happens.", 'start': 2498.82, 'duration': 2.262}, {'end': 2504.584, 'text': "So what I'm going to do is I'm just going to run this particular project.", 'start': 2501.482, 'duration': 3.102}], 'summary': 'Demonstrating how to call a method in a customers class and execute a project.', 'duration': 28.941, 'max_score': 2475.643, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2475643.jpg'}, {'end': 2577.412, 'src': 'embed', 'start': 2551.022, 'weight': 6, 'content': [{'end': 2557.344, 'text': 'Now, this is basically because you know the customer class which have defined is not a spring bean that is it is not a spring object.', 'start': 2551.022, 'duration': 6.322}, {'end': 2561.886, 'text': 'So to tell the spring container that you know, we need an object of the customer class.', 'start': 2557.745, 'duration': 4.141}, {'end': 2566.188, 'text': 'We need to mention the add rate component annotation in the customers class right?', 'start': 2562.007, 'duration': 4.181}, {'end': 2572.01, 'text': "So we'll go back to our customers class and then what I'll do is I'll scroll up and over here.", 'start': 2566.208, 'duration': 5.802}, {'end': 2577.412, 'text': "I'll mention at the rate component and I'll import the required libraries for that.", 'start': 2572.331, 'duration': 5.081}], 'summary': 'To make the customer class a spring bean, the @component annotation needs to be added', 'duration': 26.39, 'max_score': 2551.022, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2551022.jpg'}, {'end': 2712.659, 'src': 'embed', 'start': 2689.742, 'weight': 3, 'content': [{'end': 2697.787, 'text': "Now let's extend this example and further see how a class dependent on the other class uses the functionalities of that particular class in springboard.", 'start': 2689.742, 'duration': 8.045}, {'end': 2700.374, 'text': 'So that was about dependency injection, right?', 'start': 2698.473, 'duration': 1.901}, {'end': 2707.477, 'text': 'So our main concept of dependency injection was how a specific class, which is dependent on the other class, uses its functionality right?', 'start': 2700.394, 'duration': 7.083}, {'end': 2708.918, 'text': "So let's see how that happens.", 'start': 2707.517, 'duration': 1.401}, {'end': 2712.659, 'text': "So to do that what we're going to do is we're going to extend the same project.", 'start': 2709.478, 'duration': 3.181}], 'summary': 'Exploring dependency injection in springboard for class interaction.', 'duration': 22.917, 'max_score': 2689.742, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2689742.jpg'}, {'end': 2935.595, 'src': 'heatmap', 'start': 2792.803, 'weight': 0.852, 'content': [{'end': 2798.486, 'text': "I'll mention let's say completed and then I'll just close this particular section.", 'start': 2792.803, 'duration': 5.683}, {'end': 2804.529, 'text': "And now what I'll do is I'll basically call this tech method in the customers class, right? So I'll go back to the customers class.", 'start': 2799.066, 'duration': 5.463}, {'end': 2815.561, 'text': "And then what I'll do is I'll basically add a new parameter over here that is private the class name, that is basically Technologies,", 'start': 2805.09, 'duration': 10.471}, {'end': 2818.723, 'text': "and then I'll mention, let's say, tech detail, right?", 'start': 2815.561, 'duration': 3.162}, {'end': 2821.725, 'text': "So that is basically the parameter that I'm using over here.", 'start': 2818.743, 'duration': 2.982}, {'end': 2829.269, 'text': "and then I'll select this particular parameter right click, go to source and I'll generate the getter and the set of methods for it, right?", 'start': 2821.725, 'duration': 7.544}, {'end': 2832.431, 'text': "So I'll just select this and click on generate right?", 'start': 2829.289, 'duration': 3.142}, {'end': 2834.553, 'text': 'So let me just put it.', 'start': 2832.472, 'duration': 2.081}, {'end': 2838.448, 'text': "before this, so that you know it's clear now.", 'start': 2835.287, 'duration': 3.161}, {'end': 2838.948, 'text': 'after that,', 'start': 2838.448, 'duration': 0.5}, {'end': 2845.731, 'text': "what we'll do is we'll basically use the tech method to mention the tech details or tech under the display method of the customers class right?", 'start': 2838.948, 'duration': 6.783}, {'end': 2852.213, 'text': 'So to make sure that you know, the tech detail option is instantiated, where you have to go back to the technologies class and over here.', 'start': 2846.111, 'duration': 6.102}, {'end': 2857.975, 'text': "You basically have to mention the added component annotation, right? So I'll just mention added component.", 'start': 2852.273, 'duration': 5.702}, {'end': 2864.723, 'text': "Right and then I'll import this particular section and in the display class of customers.", 'start': 2858.92, 'duration': 5.803}, {'end': 2867.705, 'text': "What I'll basically do is I'll call in the tech method.", 'start': 2864.803, 'duration': 2.902}, {'end': 2875.349, 'text': "So for that I'll mention tech details that I just chosen as a parameter in the customers class and then I'll mention the tech method.", 'start': 2868.185, 'duration': 7.164}, {'end': 2877.23, 'text': 'So that looks fine.', 'start': 2876.35, 'duration': 0.88}, {'end': 2879.872, 'text': "Now, let's just execute this particular project again.", 'start': 2877.631, 'duration': 2.241}, {'end': 2881.853, 'text': 'So I just relaunched this particular project.', 'start': 2880.092, 'duration': 1.761}, {'end': 2885.54, 'text': 'All right.', 'start': 2885.16, 'duration': 0.38}, {'end': 2889.141, 'text': 'so we see an error that you know Java lang null pointer exception.', 'start': 2885.54, 'duration': 3.601}, {'end': 2891.822, 'text': 'but you know our dependency application has started,', 'start': 2889.141, 'duration': 2.681}, {'end': 2897.824, 'text': 'but yet it says that you know customers object returned successfully but does not shows the completed method right?', 'start': 2891.822, 'duration': 6.002}, {'end': 2901.005, 'text': 'So that is basically the completed output that we wanted to see.', 'start': 2897.844, 'duration': 3.161}, {'end': 2901.685, 'text': "doesn't show that.", 'start': 2901.005, 'duration': 0.68}, {'end': 2905.546, 'text': "that's because you know the customer class is dependent on the technologies class,", 'start': 2901.685, 'duration': 3.861}, {'end': 2909.507, 'text': 'but yet It does not know the existence of the technologies class right?', 'start': 2905.546, 'duration': 3.961}, {'end': 2917.449, 'text': 'So if you say you have class A and class B, then class A is dependent on class B, but yet it does not know the existence of class B.', 'start': 2909.527, 'duration': 7.922}, {'end': 2921.51, 'text': 'So to make sure that you know, the class A gets to know about the existence of class B.', 'start': 2917.449, 'duration': 4.061}, {'end': 2923.61, 'text': 'You have to use the auto white annotation.', 'start': 2921.51, 'duration': 2.1}, {'end': 2930.932, 'text': 'So basically the auto white annotation is used to enable a class to recognize the other class and make sure the dependencies are satisfied.', 'start': 2924.03, 'duration': 6.902}, {'end': 2935.595, 'text': "So let's see how to make sure that you know, the customer class recognizes the Technologies class.", 'start': 2931.412, 'duration': 4.183}], 'summary': 'The transcript discusses implementing a tech method in the customers class and addressing a java lang null pointer exception in the project.', 'duration': 142.792, 'max_score': 2792.803, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2792803.jpg'}], 'start': 2079.393, 'title': 'Dependency injection in spring boot', 'summary': 'Covers the benefits of dependency injection, such as easy component interaction, application extension, and reduced boilerplate code. it also demonstrates setting up a project in eclipse ide and creating a class with parameters and getter/setter methods.', 'chapters': [{'end': 2320.844, 'start': 2079.393, 'title': 'Dependency injection basics', 'summary': 'Discusses the benefits of dependency injection, including easy component interaction, application extension, easier unit testing, and reduced boilerplate code. it also demonstrates the hands-on process of setting up a project in eclipse ide and creating a class with parameters and getter/setter methods.', 'duration': 241.451, 'highlights': ['Dependency injection enables an easy way to interact with components, extends applications easily, makes unit testing much easier, and reduces the boilerplate code. Dependency injection allows for easy component interaction, application extension, easier unit testing, and reduced boilerplate code.', 'Demonstrates the hands-on process of setting up a project in Eclipse IDE and creating a class with parameters and getter/setter methods. The process of setting up a project in Eclipse IDE and creating a class with parameters and getter/setter methods is demonstrated.', 'Explains the use of dependency injection to get objects at runtime and avoid manual creation or recreation of objects. Dependency injection is used to get objects at runtime and avoid manual creation or recreation of objects.']}, {'end': 2956.308, 'start': 2321.264, 'title': 'Implementing dependency injection in spring boot', 'summary': 'Explains the process of implementing dependency injection in spring boot, including changing the run line in the application class, creating an object at runtime, using the display method to check functionality, resolving errors, implementing the add rate component and auto wired annotations, and extending the example to show how a class dependent on another class uses its functionalities.', 'duration': 635.044, 'highlights': ['The chapter explains the process of implementing dependency injection in Spring Boot The chapter covers the implementation of dependency injection in Spring Boot, demonstrating practical steps and concepts.', 'Changing the run line in the application class and creating an object at runtime Describes the process of changing the run line in the application class to create an object at runtime using configurable application context, demonstrating a practical coding example.', 'Using the display method to check functionality and resolving errors Illustrates the utilization of the display method to check the functionality of the code and the process of resolving errors, providing a practical application of troubleshooting.', 'Implementing the add rate component and auto wired annotations Explains the implementation of the add rate component and auto wired annotations to define Spring beans and manage dependencies within the Spring framework.', 'Extending the example to show how a class dependent on another class uses its functionalities Extends the example to demonstrate how a class dependent on another class uses its functionalities, showcasing practical application and extension of the dependency injection concept.']}], 'duration': 876.915, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2079393.jpg', 'highlights': ['Dependency injection enables easy component interaction, application extension, and reduced boilerplate code.', 'Demonstrates setting up a project in Eclipse IDE and creating a class with parameters and getter/setter methods.', 'Explains the use of dependency injection to get objects at runtime and avoid manual creation or recreation of objects.', 'The chapter covers the implementation of dependency injection in Spring Boot, demonstrating practical steps and concepts.', 'Describes the process of changing the run line in the application class to create an object at runtime using configurable application context, demonstrating a practical coding example.', 'Illustrates the utilization of the display method to check the functionality of the code and the process of resolving errors, providing a practical application of troubleshooting.', 'Explains the implementation of the add rate component and auto wired annotations to define Spring beans and manage dependencies within the Spring framework.', 'Extends the example to demonstrate how a class dependent on another class uses its functionalities, showcasing practical application and extension of the dependency injection concept.']}, {'end': 3746.093, 'segs': [{'end': 3043.229, 'src': 'embed', 'start': 3013.872, 'weight': 0, 'content': [{'end': 3019.574, 'text': 'Now the steps are basically what would be the controller what you would request on URL and what should be returned.', 'start': 3013.872, 'duration': 5.702}, {'end': 3022.075, 'text': 'So these are the main three questions that have to be answered.', 'start': 3020.074, 'duration': 2.001}, {'end': 3026.456, 'text': 'That is what is your request URL what has to be returned and what is the controller.', 'start': 3022.115, 'duration': 4.341}, {'end': 3030.686, 'text': "So let's get started and see how we can create a web application right?", 'start': 3027.085, 'duration': 3.601}, {'end': 3036.747, 'text': "So for that I'll shift back to my Eclipse ID and then I've closed all the files so that there's no further confusion right?", 'start': 3030.706, 'duration': 6.041}, {'end': 3043.229, 'text': "And now what I'll do is I'll go to file over here, go to new and let's say I create a new project right in the new project.", 'start': 3036.907, 'duration': 6.322}], 'summary': 'Creating a web application involves answering three main questions: request url, return value, and controller.', 'duration': 29.357, 'max_score': 3013.872, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s3013872.jpg'}, {'end': 3199.072, 'src': 'heatmap', 'start': 3061.566, 'weight': 0.845, 'content': [{'end': 3067.692, 'text': 'This is one of the most important things that you have to consider in a web application since we are making a web application.', 'start': 3061.566, 'duration': 6.126}, {'end': 3071.495, 'text': "We basically need the web dependency, right? So I'll just search for web dependency.", 'start': 3067.772, 'duration': 3.723}, {'end': 3078.6, 'text': "And then you see that, you know, we have the spring web the reactive web and the web services, right? So what I'll do is I'll just click over here.", 'start': 3072.075, 'duration': 6.525}, {'end': 3079.821, 'text': "I'll choose the spring web.", 'start': 3078.76, 'duration': 1.061}, {'end': 3081.522, 'text': "I'll choose the spring web services.", 'start': 3079.881, 'duration': 1.641}, {'end': 3082.703, 'text': 'We can also choose Jersey.', 'start': 3081.562, 'duration': 1.141}, {'end': 3087.646, 'text': "Well, it's completely your call what dependencies that you want well for this particular application.", 'start': 3083.063, 'duration': 4.583}, {'end': 3093.99, 'text': "We need the spring web, but for your understanding, I'm using the spring web services and Jersey also, but just in case,", 'start': 3087.686, 'duration': 6.304}, {'end': 3095.932, 'text': 'and after that I click on finish.', 'start': 3093.99, 'duration': 1.942}, {'end': 3098.874, 'text': "now, once I click on finish, you'll see that you know the project is getting created.", 'start': 3095.932, 'duration': 2.942}, {'end': 3100.355, 'text': "So let's just wait for that to happen.", 'start': 3098.894, 'duration': 1.461}, {'end': 3102.414, 'text': 'All right.', 'start': 3102.114, 'duration': 0.3}, {'end': 3107.996, 'text': 'So, as you can see, my project has been created and then we have a main folder in which the package name is demo,', 'start': 3102.474, 'duration': 5.522}, {'end': 3111.757, 'text': 'and then we have the main application file folder, that is, the courses web application.', 'start': 3107.996, 'duration': 3.761}, {'end': 3117.519, 'text': "Now what I'm going to do in this particular application is that I'm going to create a web application using the JSP files.", 'start': 3112.097, 'duration': 5.422}, {'end': 3125.833, 'text': 'Nowadays, I would say that you know not everybody is using JSP files and most of us are using the rest apis and the rest methods and other files.', 'start': 3118.331, 'duration': 7.502}, {'end': 3131.194, 'text': 'but I would say, to make you understand a simple application JSP is the best thing that we can use.', 'start': 3125.833, 'duration': 5.361}, {'end': 3134.355, 'text': "So what I'm going to do is I'm going to create a JSP file first.", 'start': 3131.614, 'duration': 2.741}, {'end': 3140.556, 'text': 'So before I do that if you see on my left hand side, I have a source folder and then inside that I have a main folder.', 'start': 3134.735, 'duration': 5.821}, {'end': 3145.198, 'text': "So over here what I'm going to do is I'm going to create a folder and inside that particular folder.", 'start': 3141.116, 'duration': 4.082}, {'end': 3149.32, 'text': "I'm going to put the JSP file, right? So I'll just right click over here go to new.", 'start': 3145.258, 'duration': 4.062}, {'end': 3155.383, 'text': "Let's say I choose folder and let's say I mentioned the folder name to be web app.", 'start': 3149.42, 'duration': 5.963}, {'end': 3160.033, 'text': "right and then I'll click on finish and inside this particular folder.", 'start': 3156.292, 'duration': 3.741}, {'end': 3164.094, 'text': "I'll go to new again and then I'll choose file and in these files.", 'start': 3160.153, 'duration': 3.941}, {'end': 3168.756, 'text': "What I'll do is I'll basically search for the JSP files, right? So I'm not going to search presently.", 'start': 3164.174, 'duration': 4.582}, {'end': 3177.238, 'text': "What I'll just mention is I'll mention courses dot JSP and then I'll click on finish once I click on courses dot JSP.", 'start': 3168.816, 'duration': 8.422}, {'end': 3180.019, 'text': 'You see that, you know automatically the JSP file gets created.', 'start': 3177.258, 'duration': 2.761}, {'end': 3182.16, 'text': 'But yes, we do not see few files.', 'start': 3180.359, 'duration': 1.801}, {'end': 3185.901, 'text': "So let's just right click over here go to new and then let's create the file again.", 'start': 3182.2, 'duration': 3.701}, {'end': 3189.124, 'text': "Right, so I'll just search for JSP over here.", 'start': 3186.562, 'duration': 2.562}, {'end': 3191.386, 'text': 'Okay, so we have the JSP over here.', 'start': 3189.605, 'duration': 1.781}, {'end': 3199.072, 'text': "I'll click on next and then let's say we mentioned the file name to be courses and okay, it says courses exists.", 'start': 3191.446, 'duration': 7.626}], 'summary': 'Creating a web application with spring web and jsp files, demonstrating the process of adding dependencies and creating jsp files in the project.', 'duration': 137.506, 'max_score': 3061.566, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s3061566.jpg'}, {'end': 3095.932, 'src': 'embed', 'start': 3072.075, 'weight': 2, 'content': [{'end': 3078.6, 'text': "And then you see that, you know, we have the spring web the reactive web and the web services, right? So what I'll do is I'll just click over here.", 'start': 3072.075, 'duration': 6.525}, {'end': 3079.821, 'text': "I'll choose the spring web.", 'start': 3078.76, 'duration': 1.061}, {'end': 3081.522, 'text': "I'll choose the spring web services.", 'start': 3079.881, 'duration': 1.641}, {'end': 3082.703, 'text': 'We can also choose Jersey.', 'start': 3081.562, 'duration': 1.141}, {'end': 3087.646, 'text': "Well, it's completely your call what dependencies that you want well for this particular application.", 'start': 3083.063, 'duration': 4.583}, {'end': 3093.99, 'text': "We need the spring web, but for your understanding, I'm using the spring web services and Jersey also, but just in case,", 'start': 3087.686, 'duration': 6.304}, {'end': 3095.932, 'text': 'and after that I click on finish.', 'start': 3093.99, 'duration': 1.942}], 'summary': 'Choosing spring web and web services dependencies for the application.', 'duration': 23.857, 'max_score': 3072.075, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s3072075.jpg'}, {'end': 3408.813, 'src': 'embed', 'start': 3381.736, 'weight': 1, 'content': [{'end': 3385.539, 'text': 'So basically what happens is that in springboard, we have an embedded Tomcat server.', 'start': 3381.736, 'duration': 3.803}, {'end': 3387.64, 'text': 'So you do not have to configure it separately.', 'start': 3385.579, 'duration': 2.061}, {'end': 3390.161, 'text': 'You have an embedded Tomcat server, which is present.', 'start': 3387.98, 'duration': 2.181}, {'end': 3397.145, 'text': 'So if you want to check you can just go to the maven dependencies and then you see Tomcat embedded code Tomcat embedded WebSocket and so on.', 'start': 3390.201, 'duration': 6.944}, {'end': 3400.367, 'text': 'So basically all our servers have been configured automatically.', 'start': 3397.185, 'duration': 3.182}, {'end': 3403.669, 'text': 'right. so when you start the application right.', 'start': 3400.567, 'duration': 3.102}, {'end': 3408.813, 'text': "so whenever you wish to start the application, you'll see an output that you know Tomcat started on port number.", 'start': 3403.669, 'duration': 5.144}], 'summary': 'Springboard uses an embedded tomcat server, automatically configured, starting on a specific port.', 'duration': 27.077, 'max_score': 3381.736, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s3381736.jpg'}, {'end': 3449.952, 'src': 'embed', 'start': 3419.902, 'weight': 3, 'content': [{'end': 3421.463, 'text': "I'll go to application properties.", 'start': 3419.902, 'duration': 1.561}, {'end': 3423.585, 'text': "I'll mention server dot port.", 'start': 3421.463, 'duration': 2.122}, {'end': 3425.346, 'text': "let's say I go to a different port.", 'start': 3423.585, 'duration': 1.761}, {'end': 3431.536, 'text': "let's say 8083, right, I'll click on save and then what I'll do is I'll just execute this particular application.", 'start': 3425.346, 'duration': 6.19}, {'end': 3435.346, 'text': "I'll right click over here go to run as and choose spring boot app.", 'start': 3431.777, 'duration': 3.569}, {'end': 3442.805, 'text': "right I'll click on OK and then once I click on OK you see that you know automatically our execution has started right.", 'start': 3436.118, 'duration': 6.687}, {'end': 3447.109, 'text': "So let's just wait for the execution to be finished and once we see the execution is done.", 'start': 3442.825, 'duration': 4.284}, {'end': 3449.952, 'text': 'We see that you know Tomcat started on port number 8083.', 'start': 3447.149, 'duration': 2.803}], 'summary': 'Changed server port to 8083, executed application, tomcat started on 8083.', 'duration': 30.05, 'max_score': 3419.902, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s3419902.jpg'}, {'end': 3729.329, 'src': 'heatmap', 'start': 3461.728, 'weight': 0.748, 'content': [{'end': 3468.33, 'text': "Why do you think the error might have come that is because you know, we haven't mapped the GSP file to be returned when we use this particular URL.", 'start': 3461.728, 'duration': 6.602}, {'end': 3473.81, 'text': 'So whenever a client sends this particular request that is localhost colon 8083 slash courses.', 'start': 3468.93, 'duration': 4.88}, {'end': 3479.551, 'text': 'We wanted the courses JSP file to be returned right but you know, there was no mapping that had happened for that.', 'start': 3474.171, 'duration': 5.38}, {'end': 3486.593, 'text': "So for that what we'll do is we'll go back to our file right and then I'll go back to my courses controller right and over here.", 'start': 3479.932, 'duration': 6.661}, {'end': 3493.255, 'text': "I'll mention return and I'll mention course dot JSP that is basically our file name.", 'start': 3486.733, 'duration': 6.522}, {'end': 3493.975, 'text': 'All right.', 'start': 3493.675, 'duration': 0.3}, {'end': 3496.136, 'text': "So, as we can see, there's an error that you know.", 'start': 3494.035, 'duration': 2.101}, {'end': 3498.557, 'text': 'we cannot return when the method is void right?', 'start': 3496.136, 'duration': 2.421}, {'end': 3504.52, 'text': "So I'll just change it to string right and then you see that you know the error goes right now.", 'start': 3498.637, 'duration': 5.883}, {'end': 3509.322, 'text': "Let's say, you know, we execute the project right? So I'll just relaunch this particular project.", 'start': 3504.6, 'duration': 4.722}, {'end': 3518.169, 'text': "So I'll right click over here go to run as and then I'll choose spring Buddha right and click on OK and let's see what happens.", 'start': 3509.924, 'duration': 8.245}, {'end': 3525.914, 'text': 'All right, it says that you know Tom Carter started on port number 8083 and the application has started.', 'start': 3521.532, 'duration': 4.382}, {'end': 3530.399, 'text': "So let's just open our localhost, colon 8083.", 'start': 3526.014, 'duration': 4.385}, {'end': 3533.721, 'text': "All right, we see that you know there's nothing happening on the local host side.", 'start': 3530.399, 'duration': 3.322}, {'end': 3537.904, 'text': 'and then we see there was an unexpected error type not found 404 status.', 'start': 3533.721, 'duration': 4.183}, {'end': 3543.909, 'text': "So that is because you know springboard still doesn't know that you know how to convert a JSP file to a servlet.", 'start': 3538.385, 'duration': 5.524}, {'end': 3545.25, 'text': 'So to do that.', 'start': 3544.409, 'duration': 0.841}, {'end': 3555.777, 'text': "what I'm going to do is I'm just going to stop executing this particular application and then what I'll do is I'll go to the palm dot XML file and then I'll have to include the Jasper dependency.", 'start': 3545.25, 'duration': 10.527}, {'end': 3559.457, 'text': 'So let me just open the palm dot XML file Right.', 'start': 3556.217, 'duration': 3.24}, {'end': 3561.079, 'text': "I'll just drag this down.", 'start': 3559.577, 'duration': 1.502}, {'end': 3563.061, 'text': "I'll go to the official website.", 'start': 3561.599, 'duration': 1.462}, {'end': 3565.805, 'text': "Let's say Maven repository.", 'start': 3563.101, 'duration': 2.704}, {'end': 3569.49, 'text': "And then I'll search for Jasper.", 'start': 3567.467, 'duration': 2.023}, {'end': 3577.598, 'text': "right and then I'll just click over here and then you see a lot of versions of it, right? So we do not know which version has to be used.", 'start': 3571.036, 'duration': 6.562}, {'end': 3584.37, 'text': "So for that what we'll do is we'll go to the maven dependencies and then we see that you know, the tomcat embedded is of 9.0.", 'start': 3577.618, 'duration': 6.752}, {'end': 3588.021, 'text': "24 So we'll go for the same one, right? So we'll go for 9.0.", 'start': 3584.37, 'duration': 3.651}, {'end': 3594.403, 'text': "24. So I'll just select over here and then I'll just copy this particular section of the code right?", 'start': 3588.021, 'duration': 6.382}, {'end': 3599.624, 'text': "I'll go back to my Eclipse file and then I'll just paste it over here.", 'start': 3594.523, 'duration': 5.101}, {'end': 3605.867, 'text': "Right now once this is done, you're basically showing the springboard how to convert a JSP file to a servlet.", 'start': 3600.285, 'duration': 5.582}, {'end': 3609.929, 'text': "Now what we're going to do is let's just relaunch this particular application.", 'start': 3606.447, 'duration': 3.482}, {'end': 3613.09, 'text': "And let's just drag this.", 'start': 3611.789, 'duration': 1.301}, {'end': 3618.732, 'text': 'So once I drag we see that, you know, the tomcat has started on port number 83 again.', 'start': 3614.931, 'duration': 3.801}, {'end': 3621.093, 'text': "So I'll just say courses.", 'start': 3619.052, 'duration': 2.041}, {'end': 3624.646, 'text': "and then once I execute you see that, you know, it's a blank page.", 'start': 3622.125, 'duration': 2.521}, {'end': 3627.407, 'text': "That's because you know, we haven't configured the JSP file.", 'start': 3625.006, 'duration': 2.401}, {'end': 3629.407, 'text': "So what I'm going to do is I'm going to go back over here.", 'start': 3627.447, 'duration': 1.96}, {'end': 3633.508, 'text': "I'm going to stop the execution right and then I'll go to the JSP file.", 'start': 3629.507, 'duration': 4.001}, {'end': 3648.452, 'text': "I'm going to drag this down and let's say I mentioned top selling courses are and then I mentioned DevOps Python big data AWS and RPA.", 'start': 3633.528, 'duration': 14.924}, {'end': 3657.325, 'text': "Right so we can do like, you know, let's put 1 2 3 4 5.", 'start': 3650.723, 'duration': 6.602}, {'end': 3660.051, 'text': 'Right and then over here and the insert title.', 'start': 3657.328, 'duration': 2.723}, {'end': 3662.613, 'text': "I'll just mention Edureka courses.", 'start': 3660.111, 'duration': 2.502}, {'end': 3668.618, 'text': "I'll just save this file and then what I'm going to do is I'm just going to execute this file again.", 'start': 3663.433, 'duration': 5.185}, {'end': 3674.823, 'text': "So I just relaunch this application and then once I relaunch this application, let's just wait for the output.", 'start': 3668.658, 'duration': 6.165}, {'end': 3678.97, 'text': 'So as soon as I relaunch this application you see Tomcat has started.', 'start': 3675.407, 'duration': 3.563}, {'end': 3685.255, 'text': "So I'll just refresh this particular page and we see that you know top selling courses are DevOps, Python, big data, AWS and RPA,", 'start': 3679.03, 'duration': 6.225}, {'end': 3687.057, 'text': 'and the title has also changed right?', 'start': 3685.255, 'duration': 1.802}, {'end': 3689.739, 'text': 'So that means our course or JSP file has been returned.', 'start': 3687.197, 'duration': 2.542}, {'end': 3698.006, 'text': 'Now, if you observe over here if I just remove this particular section and then if I put at the rate response body.', 'start': 3690.52, 'duration': 7.486}, {'end': 3701.669, 'text': "so if I just put in this aggregate response body annotation, let's see what happens.", 'start': 3698.006, 'duration': 3.663}, {'end': 3704.031, 'text': 'I just import the required libraries for this.', 'start': 3702.149, 'duration': 1.882}, {'end': 3706.34, 'text': 'My bad.', 'start': 3705.899, 'duration': 0.441}, {'end': 3707.641, 'text': 'I put it in a wrong place.', 'start': 3706.46, 'duration': 1.181}, {'end': 3710.745, 'text': 'What we have to do is we have to mention it after request mapping right?', 'start': 3707.741, 'duration': 3.004}, {'end': 3716.773, 'text': "So I'll just mention it over here and then I'll import the required libraries right and let's see what happens right?", 'start': 3710.765, 'duration': 6.008}, {'end': 3719.155, 'text': "So I'll just relaunch this particular application again.", 'start': 3716.793, 'duration': 2.362}, {'end': 3721.539, 'text': 'All right.', 'start': 3721.238, 'duration': 0.301}, {'end': 3727.046, 'text': "Now once I've relaunched this application, let's just refresh this particular page and then you see that you know course.jsb.", 'start': 3721.559, 'duration': 5.487}, {'end': 3729.329, 'text': 'Well, this was a JSP files name right?', 'start': 3727.327, 'duration': 2.002}], 'summary': 'Troubleshooting and configuring jsp file mapping and conversion within a spring application.', 'duration': 267.601, 'max_score': 3461.728, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s3461728.jpg'}, {'end': 3525.914, 'src': 'embed', 'start': 3496.136, 'weight': 4, 'content': [{'end': 3498.557, 'text': 'we cannot return when the method is void right?', 'start': 3496.136, 'duration': 2.421}, {'end': 3504.52, 'text': "So I'll just change it to string right and then you see that you know the error goes right now.", 'start': 3498.637, 'duration': 5.883}, {'end': 3509.322, 'text': "Let's say, you know, we execute the project right? So I'll just relaunch this particular project.", 'start': 3504.6, 'duration': 4.722}, {'end': 3518.169, 'text': "So I'll right click over here go to run as and then I'll choose spring Buddha right and click on OK and let's see what happens.", 'start': 3509.924, 'duration': 8.245}, {'end': 3525.914, 'text': 'All right, it says that you know Tom Carter started on port number 8083 and the application has started.', 'start': 3521.532, 'duration': 4.382}], 'summary': 'Changed method to string, project relaunched successfully on port 8083.', 'duration': 29.778, 'max_score': 3496.136, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s3496136.jpg'}], 'start': 2956.708, 'title': 'Spring boot application development', 'summary': 'Covers the implementation of dependency injection in spring boot and the process of creating a web application, as well as configuring and running a spring boot application, including request mapping, embedded tomcat server configuration, error resolution, and returning jsp file through controller method.', 'chapters': [{'end': 3343.478, 'start': 2956.708, 'title': 'Dependency injection in spring boot', 'summary': 'Discusses the implementation of dependency injection in spring boot, followed by the process of creating a web application using spring boot, highlighting the steps involved and the dependencies required.', 'duration': 386.77, 'highlights': ['The project execution resulted in the successful return of the customers object and completion, indicating the satisfaction of dependencies by both classes. Upon project execution, successful return of the customers object and completion demonstrates the fulfillment of dependencies by both classes.', 'The process of creating a web application using Spring Boot involves defining the controller, request URL, and the expected response. Creating a web application with Spring Boot entails defining the controller, request URL, and the expected response.', 'The creation of a web application requires the inclusion of web dependencies, such as spring web, spring web services, and Jersey. In creating a web application, the inclusion of web dependencies like spring web, spring web services, and Jersey is essential.', 'The process of creating a JSP file and a controller in the web application development is explained, with an emphasis on the model-view-controller architecture. The explanation includes the creation of a JSP file and a controller in web application development, emphasizing the model-view-controller architecture.', 'The usage of @Controller annotation in Spring Boot to identify a class as a controller is demonstrated. The usage of @Controller annotation in Spring Boot to identify a class as a controller is demonstrated.']}, {'end': 3746.093, 'start': 3343.898, 'title': 'Configuring and running spring boot app', 'summary': 'Discusses the process of configuring and running a spring boot application, including using request mapping annotation, configuring embedded tomcat server, resolving error 404, and returning jsp file through controller method.', 'duration': 402.195, 'highlights': ['Embedded Tomcat server is automatically configured in Spring Boot, eliminating the need for separate configuration. Spring Boot has an embedded Tomcat server, eliminating the need for separate server configuration.', 'Configuring server port in the application properties file to a different port, such as 8083, triggers the application to start on the specified port. Changing the server port in the application properties file, e.g., to 8083, triggers the application to start on the specified port.', "Error 404 occurs due to Spring Boot not knowing how to convert a JSP file to a servlet, which is resolved by including Jasper dependency in the pom.xml file. Error 404 occurs because Spring Boot doesn't know how to convert a JSP file to a servlet, resolved by including Jasper dependency in the pom.xml file.", 'The return type of the controller method is changed to string to resolve the error of not being able to return when the method is void. Changing the return type of the controller method to string resolves the error of not being able to return when the method is void.', 'The response body annotation is used to return specific data instead of a web page through the controller method. The response body annotation is used to return specific data instead of a web page through the controller method.']}], 'duration': 789.385, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s2956708.jpg', 'highlights': ['The process of creating a web application with Spring Boot involves defining the controller, request URL, and the expected response.', 'Embedded Tomcat server is automatically configured in Spring Boot, eliminating the need for separate configuration.', 'The creation of a web application requires the inclusion of web dependencies, such as spring web, spring web services, and Jersey.', 'Configuring server port in the application properties file to a different port, such as 8083, triggers the application to start on the specified port.', 'The return type of the controller method is changed to string to resolve the error of not being able to return when the method is void.']}, {'end': 4632.995, 'segs': [{'end': 3822.028, 'src': 'embed', 'start': 3799.298, 'weight': 0, 'content': [{'end': 3808.084, 'text': "And then what I'll do is I'll change it to course and then in the application properties file what you have to mention is basically spring dot,", 'start': 3799.298, 'duration': 8.786}, {'end': 3814.659, 'text': 'MVC dot view, and then in the prefix you have to mention the folder name.', 'start': 3808.084, 'duration': 6.575}, {'end': 3816.802, 'text': 'that was basically our web app folder.', 'start': 3814.659, 'duration': 2.143}, {'end': 3819.945, 'text': 'So, if you see, I have the web app folder which has the web pages right?', 'start': 3816.822, 'duration': 3.123}, {'end': 3822.028, 'text': 'That is all the JSP files right?', 'start': 3819.985, 'duration': 2.043}], 'summary': 'Configured spring mvc view prefix for web app folder containing jsp files.', 'duration': 22.73, 'max_score': 3799.298, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s3799298.jpg'}, {'end': 4035.889, 'src': 'embed', 'start': 4009.824, 'weight': 4, 'content': [{'end': 4013.951, 'text': "Now let's say you know you want to create a web application to pass the clients data right?", 'start': 4009.824, 'duration': 4.127}, {'end': 4018.998, 'text': "So obviously it's not always that you know we have specific data that is already predefined right.", 'start': 4013.991, 'duration': 5.007}, {'end': 4023.345, 'text': 'sometimes it may also happen that you know we want to pass the client data and into an application right?', 'start': 4018.998, 'duration': 4.347}, {'end': 4024.988, 'text': "So let's see how to do that.", 'start': 4023.746, 'duration': 1.242}, {'end': 4031.406, 'text': "So to do that what I'm going to do is I'm just going to extend this particular project that we have just created that is the courses project.", 'start': 4025.882, 'duration': 5.524}, {'end': 4035.889, 'text': 'But before that let me just close everything so that there is no confusion again, right?', 'start': 4031.746, 'duration': 4.143}], 'summary': 'Creating a web application to pass client data, extending the courses project.', 'duration': 26.065, 'max_score': 4009.824, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s4009824.jpg'}, {'end': 4149.278, 'src': 'embed', 'start': 4130.569, 'weight': 1, 'content': [{'end': 4142.915, 'text': "But to do that we have to configure the controller and that's the reason I've mentioned the servlet request over here as soon as to pass the data in the URL automatically that particular data has been fetched from over here and then the required actions are taken into account.", 'start': 4130.569, 'duration': 12.346}, {'end': 4149.278, 'text': "So what I've done is I mentioned HTTP servlet, request req, and then I'll just import the required package and over here.", 'start': 4143.234, 'duration': 6.044}], 'summary': 'Configuring the controller to automatically fetch data from the url using http servlet request.', 'duration': 18.709, 'max_score': 4130.569, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s4130569.jpg'}, {'end': 4444.392, 'src': 'embed', 'start': 4415.554, 'weight': 2, 'content': [{'end': 4418.716, 'text': "So now that you know how to pass a client's data in web application.", 'start': 4415.554, 'duration': 3.162}, {'end': 4423.179, 'text': "Let's move forward with the session and understand an example on the model view and object.", 'start': 4419.096, 'duration': 4.083}, {'end': 4427.023, 'text': 'Now, if you remember, in the theory part I was talking about the model view controller right?', 'start': 4423.499, 'duration': 3.524}, {'end': 4432.648, 'text': 'So basically, where we have a model view and a controller and how these three components collaborate with each other.', 'start': 4427.043, 'duration': 5.605}, {'end': 4437.133, 'text': "So let's look into the same on the practical side of how you can use a model view an object.", 'start': 4433.029, 'duration': 4.104}, {'end': 4444.392, 'text': "But before that let me just switch back to my Eclipse workspace and now what I'm going to do is I'm just going to stop this process and now,", 'start': 4437.668, 'duration': 6.724}], 'summary': 'Exploring model view controller collaboration in web applications.', 'duration': 28.838, 'max_score': 4415.554, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s4415554.jpg'}, {'end': 4473.068, 'src': 'embed', 'start': 4445.573, 'weight': 3, 'content': [{'end': 4453.178, 'text': "I hope you know you've understood that you're fetching a name from the client and then we're adding it to a session and then we are displaying the output on the JSP file right?", 'start': 4445.573, 'duration': 7.605}, {'end': 4457.701, 'text': "But let's say you know we want to accept the course name without using the HTTP session.", 'start': 4453.558, 'duration': 4.143}, {'end': 4460.762, 'text': 'or you know without using the HTTP server request.', 'start': 4458.221, 'duration': 2.541}, {'end': 4463.804, 'text': 'Do you think that can happen? Well, I would say it could definitely happen.', 'start': 4460.782, 'duration': 3.022}, {'end': 4464.984, 'text': 'So to do that,', 'start': 4464.244, 'duration': 0.74}, {'end': 4473.068, 'text': 'what you can basically do is that you know you can basically remove this part right and then what you can just do is you just have to mention string name right?', 'start': 4464.984, 'duration': 8.084}], 'summary': "Discussion about fetching and displaying client's name, and possibility of doing so without using http session or server request.", 'duration': 27.495, 'max_score': 4445.573, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s4445573.jpg'}], 'start': 3746.093, 'title': 'Creating web applications and passing client data', 'summary': 'Covers creating a simple web application, mapping urls to jsp files, using application properties files, and passing client data to a jsp file via the controller. it also demonstrates passing client data to a web application using http session request, explaining setting attribute values, displaying client data, and potential issues, proposing a solution using the @requestparam annotation.', 'chapters': [{'end': 4282.146, 'start': 3746.093, 'title': 'Creating simple web application', 'summary': 'Covers creating a simple web application, mapping urls to jsp files, using application properties files, and passing client data to a jsp file via the controller, emphasizing the need for proper file/folder structure and controller configuration.', 'duration': 536.053, 'highlights': ['Mapping URLs to JSP files and using application properties files The speaker demonstrates how to map URLs to JSP files using the request mapping annotation and configuring the prefix and suffix in the application properties file to specify the folder structure, with an emphasis on correcting folder structure for proper file placement.', "Passing client data to a JSP file via the controller The process of passing client data to a JSP file via the controller is explained, including the use of HTTP servlet request dispatcher and configuring the controller to fetch and process the data sent from the client's URL.", "Emphasizing the need for proper file/folder structure and controller configuration The importance of maintaining the correct file/folder structure and configuring the controller to accept and process client data is stressed, highlighting the impact of incorrect structure on the application's functionality."]}, {'end': 4632.995, 'start': 4282.927, 'title': 'Passing client data to a web application', 'summary': 'Demonstrates passing client data to a web application using http session request and explains the process of setting attribute values, displaying client data, and potential issues in relying on client data, and proposes a solution using the @requestparam annotation.', 'duration': 350.068, 'highlights': ['Demonstrates setting attribute values using HTTP session request and displaying client data. Used HTTP session request to set attribute values and display client data on the JSP file.', 'Explains potential issues in relying on client data for the web application. Highlighted the potential issues in relying on client data and demonstrated the problems associated with it.', 'Proposes a solution using the @RequestParam annotation for handling client data. Suggested using the @RequestParam annotation as a solution for handling client data in the web application.']}], 'duration': 886.902, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s3746093.jpg', 'highlights': ['Mapping URLs to JSP files using request mapping annotation and configuring prefix and suffix in application properties file.', 'Passing client data to JSP file via controller using HTTP servlet request dispatcher and configuring controller to fetch and process data.', 'Emphasizing the importance of maintaining correct file/folder structure and configuring controller to accept and process client data.', 'Demonstrating setting attribute values using HTTP session request and displaying client data on JSP file.', 'Explaining potential issues in relying on client data for web application and demonstrating associated problems.', 'Proposing solution using @RequestParam annotation for handling client data in web application.']}, {'end': 5856.011, 'segs': [{'end': 4843.429, 'src': 'embed', 'start': 4809.407, 'weight': 0, 'content': [{'end': 4813.688, 'text': 'Similarly if I just type in DevOps you see welcome to Edureka DevOps.', 'start': 4809.407, 'duration': 4.281}, {'end': 4816.81, 'text': 'So guys that was an example about the model view object.', 'start': 4814.169, 'duration': 2.641}, {'end': 4823.573, 'text': 'I hope you have understood how you can add an object and set a view name with that we come to an end to this particular section of the session.', 'start': 4816.93, 'duration': 6.643}, {'end': 4833.085, 'text': 'Now moving on in the session will be creating a submission form and springboard right?', 'start': 4828.883, 'duration': 4.202}, {'end': 4843.429, 'text': 'So this is one of the most common use cases in springboard to understand the database dependency and how a client can enter details and also how the details can be stored and maybe fetch from the database.', 'start': 4833.125, 'duration': 10.304}], 'summary': 'The session covered understanding model view object and creating a submission form in springboard.', 'duration': 34.022, 'max_score': 4809.407, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s4809407.jpg'}, {'end': 4932.141, 'src': 'embed', 'start': 4883.149, 'weight': 2, 'content': [{'end': 4889.455, 'text': "and after that, I'm just going to click on finish once I click on finish you can see that you know, our project is getting created.", 'start': 4883.149, 'duration': 6.306}, {'end': 4891.056, 'text': "So let's just wait for that to happen.", 'start': 4889.515, 'duration': 1.541}, {'end': 4896.781, 'text': 'And once the project is created you can see that you know automatically we get this file that is the application file.', 'start': 4891.556, 'duration': 5.225}, {'end': 4899.703, 'text': 'Now what we can do is we can just create a new class.', 'start': 4897.261, 'duration': 2.442}, {'end': 4900.564, 'text': "Let's say customer.", 'start': 4899.744, 'duration': 0.82}, {'end': 4906.85, 'text': "So I'll go to new and I'll choose class and I'll mention customers and then I'll click on finish.", 'start': 4900.604, 'duration': 6.246}, {'end': 4914.194, 'text': "Now in this particular class what I'm going to do is I'm going to mention few parameters like, you know, customer name customer ID and customer email.", 'start': 4907.671, 'duration': 6.523}, {'end': 4919.356, 'text': 'So let me just mention private and C ID.', 'start': 4914.714, 'duration': 4.642}, {'end': 4927.859, 'text': "Let's say private and see name and private and I'm sorry.", 'start': 4920.016, 'duration': 7.843}, {'end': 4932.141, 'text': "The private spelling and let's say see email.", 'start': 4929.42, 'duration': 2.721}], 'summary': "Creating a project, adding a class 'customer' with name, id, and email parameters.", 'duration': 48.992, 'max_score': 4883.149, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s4883149.jpg'}, {'end': 5358.274, 'src': 'embed', 'start': 5326.828, 'weight': 4, 'content': [{'end': 5327.809, 'text': 'That is the pages folder.', 'start': 5326.828, 'duration': 0.981}, {'end': 5330.531, 'text': "So for that what we'll do is we'll search for prefix.", 'start': 5327.829, 'duration': 2.702}, {'end': 5336.897, 'text': 'And then we can see that you know, we get this option of spring dot MVC dot view dot prefix and over here.', 'start': 5332.053, 'duration': 4.844}, {'end': 5346.024, 'text': "I'll mention the directory name that is slash pages slash similarly in the suffix one since the files end with a JSP tag.", 'start': 5337.297, 'duration': 8.727}, {'end': 5347.586, 'text': "I'll just mention suffix.", 'start': 5346.084, 'duration': 1.502}, {'end': 5355.452, 'text': "Right. and then what I'll do is I'll mention dot JSP right and then I'll click on save.", 'start': 5348.866, 'duration': 6.586}, {'end': 5358.274, 'text': "so that's with the configuration of the application properties file.", 'start': 5355.452, 'duration': 2.822}], 'summary': 'Configured spring mvc view prefix and suffix for jsp files in pages folder.', 'duration': 31.446, 'max_score': 5326.828, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s5326828.jpg'}, {'end': 5578.908, 'src': 'embed', 'start': 5549.155, 'weight': 5, 'content': [{'end': 5555.139, 'text': "what I'm going to do is, initially I'm going to use the get mapping annotation to get the requested mapping.", 'start': 5549.155, 'duration': 5.984}, {'end': 5556.64, 'text': 'as you use the requested mapping.', 'start': 5555.139, 'duration': 1.501}, {'end': 5560.162, 'text': 'also, when you say requested mapping, your request for a specific URL right?', 'start': 5556.64, 'duration': 3.522}, {'end': 5564.065, 'text': 'But when you say get mapping, you have to use the exact text that has been mentioned right?', 'start': 5560.463, 'duration': 3.602}, {'end': 5568.608, 'text': "So I'll just mention get mapping right and let's say I mentioned Eddie Rekha.", 'start': 5564.085, 'duration': 4.523}, {'end': 5572.225, 'text': "Right. so I'll just retrieve this particular annotation.", 'start': 5569.364, 'duration': 2.861}, {'end': 5578.908, 'text': 'and once I retrieve this particular annotation and we have a method which says public string Edureka, and then we have to return Edureka dot,', 'start': 5572.225, 'duration': 6.683}], 'summary': 'Using get mapping to retrieve requested url annotations and methods.', 'duration': 29.753, 'max_score': 5549.155, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s5549155.jpg'}], 'start': 4633.696, 'title': 'Web application development', 'summary': 'Discusses using model and view in spring, creating a submission form, and covers the process of web application development including project setup, class creation, method generation, jsp file creation, form input handling, and configuring jsp files and spring application.', 'chapters': [{'end': 4882.298, 'start': 4633.696, 'title': 'Using model and view in spring', 'summary': 'Discusses using model and view in spring to pass and retrieve data without using http session, and creating a submission form in spring boot, highlighting the process of adding an object, setting a view name, and the common use case of database dependency.', 'duration': 248.602, 'highlights': ['The chapter discusses using model and view in Spring to pass and retrieve data without using HTTP session, highlighting the process of adding an object, setting a view name, and returning a model view object.', 'The speaker demonstrates the process of creating a submission form in Spring boot, mentioning the required dependencies as H2 database, Spring Data JPA, and Jersey for web services.', 'The speaker explains that the model and view concept in Spring requires adding an object and setting a view name, illustrating the process with a practical example of passing and retrieving data without using HTTP session.']}, {'end': 5087.101, 'start': 4883.149, 'title': 'Web application development process', 'summary': 'Covers the process of creating a web application, including project setup, class creation, method generation, jsp file creation, and form input handling.', 'duration': 203.952, 'highlights': ["The project is created by clicking 'finish', and an application file is automatically generated.", "A new class named 'customer' is created with parameters for customer name, ID, and email, and getter/setter methods are generated for the class.", "A JSP file named 'edureka' is created, and form actions and inputs for customer ID, name, and email are defined.", 'Form submission functionality is added with a submit button, completing the web application development process.']}, {'end': 5549.155, 'start': 5087.734, 'title': 'Creating form controller and configuring jsp files', 'summary': 'Covers the creation of a form controller, mapping requests, and configuring jsp files, including creating a view customers page and configuring the controller class.', 'duration': 461.421, 'highlights': ['Configuring JSP file directory and suffix in the application properties file Configuring the JSP file directory and suffix in the application properties file to ensure JSP files are read from the specified folder.', 'Creating form controller and defining request mapping Creating a form controller and defining a request mapping for the edureka.jsp file, specifying the method for returning the file.', 'Creating a view customers page and configuring the controller class Creating a view customers page and configuring the controller class to accept requests from the client and return the requested response.']}, {'end': 5856.011, 'start': 5549.155, 'title': 'Creating form controller and configuring spring application', 'summary': 'Covers creating a form controller with get and post mapping annotations, retrieving and displaying user details, using request parameter annotation, creating a model map, and configuring the spring application with component scanning.', 'duration': 306.856, 'highlights': ['Creating Form Controller with Get and Post Mapping Annotations The instructor explains using get and post mapping annotations to handle specific URL requests, retrieving and displaying user details, and submitting form data.', 'Using Request Parameter Annotation and Model Map The process involves using request parameter annotation to pass requested parameters like customer ID, name, and email address, and creating a model map to store and retrieve customer details.', 'Configuring Spring Application with Component Scanning The instructor demonstrates using the component scanning directive with candidate components annotation to scan and configure every component, and then protecting the spring application builder.']}], 'duration': 1222.315, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s4633696.jpg', 'highlights': ['The chapter discusses using model and view in Spring to pass and retrieve data without using HTTP session, highlighting the process of adding an object, setting a view name, and returning a model view object.', 'The speaker explains that the model and view concept in Spring requires adding an object and setting a view name, illustrating the process with a practical example of passing and retrieving data without using HTTP session.', "The project is created by clicking 'finish', and an application file is automatically generated.", "A new class named 'customer' is created with parameters for customer name, ID, and email, and getter/setter methods are generated for the class.", 'Configuring JSP file directory and suffix in the application properties file to ensure JSP files are read from the specified folder.', 'Creating Form Controller with Get and Post Mapping Annotations The instructor explains using get and post mapping annotations to handle specific URL requests, retrieving and displaying user details, and submitting form data.']}, {'end': 7867.482, 'segs': [{'end': 5898.061, 'src': 'embed', 'start': 5872.075, 'weight': 2, 'content': [{'end': 5877.836, 'text': "So basically I've mentioned, configure that we should run on port number 8084 and then we have a prefix for pages.", 'start': 5872.075, 'duration': 5.761}, {'end': 5881.637, 'text': 'that is basically our folder name and then our suffix will be dot JSP.', 'start': 5877.836, 'duration': 3.801}, {'end': 5888.479, 'text': "After that, what we've done is we have configured the ad record or JSP file where we have mentioned the form method to be post, that is,", 'start': 5882.337, 'duration': 6.142}, {'end': 5889.599, 'text': 'with action details.', 'start': 5888.479, 'duration': 1.12}, {'end': 5891.939, 'text': 'like you know, once the URL gets executed.', 'start': 5889.599, 'duration': 2.34}, {'end': 5898.061, 'text': 'We need the form to be displayed with enter customer ID customer name and customer email address right now after that is done.', 'start': 5891.999, 'duration': 6.062}], 'summary': 'Configured to run on port 8084 with prefix and suffix for jsp files, and set up a form for customer details.', 'duration': 25.986, 'max_score': 5872.075, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s5872075.jpg'}, {'end': 6063.71, 'src': 'embed', 'start': 6035.276, 'weight': 3, 'content': [{'end': 6037.197, 'text': 'So if you observe I am entering any detail right?', 'start': 6035.276, 'duration': 1.921}, {'end': 6038.457, 'text': "It's not getting stored anywhere.", 'start': 6037.217, 'duration': 1.24}, {'end': 6040.838, 'text': 'So where do we store it? So we need a database for it.', 'start': 6038.497, 'duration': 2.341}, {'end': 6045.88, 'text': "So next in the session, let's look into how to connect the web application to a database.", 'start': 6041.198, 'duration': 4.682}, {'end': 6053.543, 'text': "So I'm going to show you step by step how we are going to use the H2 database and the JPA repositories to connect the web application to the database.", 'start': 6046.26, 'duration': 7.283}, {'end': 6058.546, 'text': 'But before that let me tell you that you know, the edge to database is the in-memory database.', 'start': 6054.083, 'duration': 4.463}, {'end': 6063.71, 'text': 'Whereas the spring data JPA basically deals with enhanced support for JPA based data access layers.', 'start': 6058.586, 'duration': 5.124}], 'summary': 'Explanation of connecting web app to h2 database and jpa repositories.', 'duration': 28.434, 'max_score': 6035.276, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s6035276.jpg'}, {'end': 6320.311, 'src': 'embed', 'start': 6293.685, 'weight': 1, 'content': [{'end': 6299.128, 'text': 'what happens is that automatically the table will be created when you run this particular project right.', 'start': 6293.685, 'duration': 5.443}, {'end': 6303.09, 'text': 'and then what happens is that in the customers class and mention at the rate ID.', 'start': 6299.128, 'duration': 3.962}, {'end': 6304.731, 'text': 'So the same goes over here.', 'start': 6303.57, 'duration': 1.161}, {'end': 6308.346, 'text': "We'll just import the required libraries and one thing over here.", 'start': 6305.385, 'duration': 2.961}, {'end': 6314.148, 'text': 'We had to change it to string because see name and see email are not integer values, but their spring value.', 'start': 6308.446, 'duration': 5.702}, {'end': 6315.489, 'text': "So I'll just mention it to string.", 'start': 6314.168, 'duration': 1.321}, {'end': 6316.97, 'text': "Okay I'm sorry.", 'start': 6316.269, 'duration': 0.701}, {'end': 6318.05, 'text': 'It has to be email.', 'start': 6317.01, 'duration': 1.04}, {'end': 6320.311, 'text': 'Right and over here.', 'start': 6319.33, 'duration': 0.981}], 'summary': 'A table is created automatically, and the customer class is modified to handle string values for name and email.', 'duration': 26.626, 'max_score': 6293.685, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s6293685.jpg'}, {'end': 6467.616, 'src': 'embed', 'start': 6442.11, 'weight': 4, 'content': [{'end': 6448.292, 'text': "So next in the session, let's understand how to add the data into the database from the application.", 'start': 6442.11, 'duration': 6.182}, {'end': 6451.073, 'text': 'now to pass the data from web application to the database.', 'start': 6448.292, 'duration': 2.781}, {'end': 6453.454, 'text': 'What do you have to do is you have to create a repository.', 'start': 6451.153, 'duration': 2.301}, {'end': 6455.935, 'text': 'So to do so to create a repository.', 'start': 6454.134, 'duration': 1.801}, {'end': 6461.897, 'text': "what I'm going to do is I'm going to right, click over here, go to new, and then I'll choose interface, right and an interface.", 'start': 6455.935, 'duration': 5.962}, {'end': 6463.918, 'text': "Let's say I mentioned the name to be customers.", 'start': 6461.937, 'duration': 1.981}, {'end': 6467.616, 'text': "Repo I'll click on finish after that right now.", 'start': 6464.674, 'duration': 2.942}], 'summary': 'Explanation of adding data to the database through a repository in a web application.', 'duration': 25.506, 'max_score': 6442.11, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s6442110.jpg'}, {'end': 7671.973, 'src': 'embed', 'start': 7646.887, 'weight': 0, 'content': [{'end': 7652.089, 'text': 'the rest API creates an object and thereafter sense the values of an object in response to the client.', 'start': 7646.887, 'duration': 5.202}, {'end': 7654.711, 'text': 'So now that you know the need of rest API.', 'start': 7652.47, 'duration': 2.241}, {'end': 7656.992, 'text': "Let's take a look at what is rest API.", 'start': 7654.791, 'duration': 2.201}, {'end': 7664.389, 'text': 'Now rest suggests to create an object of the data requested by the client and sense the values of the object in response to the user.', 'start': 7657.725, 'duration': 6.664}, {'end': 7671.973, 'text': 'For example, if the user is requesting for a movie in Bangalore at a certain place and certain time then you can create an object on the server side.', 'start': 7664.729, 'duration': 7.244}], 'summary': 'Rest api creates and senses object values in response to client requests.', 'duration': 25.086, 'max_score': 7646.887, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s7646887.jpg'}], 'start': 5856.031, 'title': 'Web application development with spring boot', 'summary': 'Covers creating a submission form, connecting a web application to an h2 in-memory database, implementing data storage, troubleshooting data retrieval, and working with rest api. it includes configuring application properties, jsp files, controller file, entity class, repository, debugging, and rest api principles.', 'chapters': [{'end': 6017.225, 'start': 5856.031, 'title': 'Creating submission form in spring boot', 'summary': 'Explains the process of creating a submission form in a spring boot project, configuring application properties, jsp files for form and view, and the controller file for handling form submission and displaying customer details, with the demonstration of executing the project and submitting form data.', 'duration': 161.194, 'highlights': ['Configuring application properties to run on port 8084 and defining prefixes and suffixes for pages. Port number configuration, prefix and suffix definition', 'Configuring JSP files for form and view, specifying form method as post, and defining customer details to be entered and viewed. Form method, customer details configuration', 'Configuring the controller file to identify the class as a controller, mapping URLs, handling form submission, and displaying customer details. Controller configuration, URL mapping, form submission handling', 'Demonstration of executing the Spring Boot project, checking Tomcat start on port 8084, accessing the form, entering customer details, and submitting the form. Project execution, Tomcat start verification, form submission']}, {'end': 6368.379, 'start': 6017.225, 'title': 'Web application database connection', 'summary': 'Discusses connecting a web application to an h2 in-memory database using spring data jpa, including setting up the database, configuring application properties, and creating an entity class for storing customer details.', 'duration': 351.154, 'highlights': ['The chapter discusses connecting a web application to an H2 in-memory database using Spring Data JPA.', 'It explains setting up the database, including configuring application properties and dependencies in the pom.xml file.', "The process involves creating an entity class 'customers' with fields for customer ID, name, and email, and using annotations like @Entity and @Id to automate table creation.", 'The process also includes generating getter and setter methods and a toString method for the entity class to handle data access and manipulation.']}, {'end': 6843.252, 'start': 6369.04, 'title': 'Implementing data storage in web application', 'summary': 'Demonstrates the process of creating a table, inserting data, and utilizing the repository to save and retrieve information in a web application, encountering errors and debugging along the way.', 'duration': 474.212, 'highlights': ["A table named 'customers' is automatically created with attributes CIDC, email, and CNAME when the application is relaunched. Upon relaunching the application, a table 'customers' with specific attributes is automatically generated.", "No data rows are present initially in the 'customers' table. Initially, the 'customers' table is devoid of any data rows.", "The process of adding data into the database from the application is discussed, involving the creation and extension of a repository interface to work with the 'customers' class. The method of passing data from the web application to the database is explained through the creation and extension of a repository interface to interact with the 'customers' class."]}, {'end': 7107.527, 'start': 6843.832, 'title': 'Troubleshooting web application data retrieval', 'summary': 'Discusses troubleshooting a web application where data is not being displayed on the next page despite being stored in the database, and the steps to rectify it, including enabling the post mapping annotation, creating a model and view, and retrieving data from the database to display on the web page.', 'duration': 263.695, 'highlights': ["The data is getting stored from the web application to the database, but it's not being displayed on the next page where we want to view the customer details.", 'Enabling the post mapping annotation and creating a model and view to retrieve data from the database and display it on the web page.', "In case the customer ID is not present, the output will be 'none', indicating an error in data retrieval."]}, {'end': 7867.482, 'start': 7107.527, 'title': 'Working with spring boot and rest api', 'summary': 'Explains the process of building and testing a spring boot application to retrieve and store form data in an h2 database, and then demonstrates the creation and correction of a rest api to display customer details. it also introduces the concept of rest api, its need, and its architectural style, and finally outlines the features and principles of rest api.', 'duration': 759.955, 'highlights': ['The chapter explains the process of building and testing a Spring Boot application to retrieve and store form data in an H2 database. Demonstrates the process of building and testing a Spring Boot application to retrieve and store form data in an H2 database.', 'Creation and correction of a Rest API to display customer details. Demonstrates the creation and correction of a Rest API to display customer details.', 'Introduces the concept of Rest API, its need, and its architectural style. Introduces the concept of Rest API, its need, and its architectural style.', 'Outlines the features and principles of Rest API. Outlines the features and principles of Rest API.']}], 'duration': 2011.451, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s5856031.jpg', 'highlights': ['Demonstrates the creation and correction of a Rest API to display customer details.', "The process involves creating an entity class 'customers' with fields for customer ID, name, and email, and using annotations like @Entity and @Id to automate table creation.", 'Configuring application properties to run on port 8084 and defining prefixes and suffixes for pages. Port number configuration, prefix and suffix definition', 'The chapter explains the process of building and testing a Spring Boot application to retrieve and store form data in an H2 database.', "The process of adding data into the database from the application is discussed, involving the creation and extension of a repository interface to work with the 'customers' class."]}, {'end': 10273.398, 'segs': [{'end': 7891.037, 'src': 'embed', 'start': 7868.459, 'weight': 0, 'content': [{'end': 7876.265, 'text': 'So it basically enables load balancing and provides shared caches for promoting scalability moving on to the last principle that is code-on-demand.', 'start': 7868.459, 'duration': 7.806}, {'end': 7878.907, 'text': 'This is an optional constraint and is used the lease.', 'start': 7876.626, 'duration': 2.281}, {'end': 7885.492, 'text': "It basically permits a client's code or applets to be downloaded and to be used within the application in essence.", 'start': 7879.248, 'duration': 6.244}, {'end': 7891.037, 'text': "It simplifies the clients by creating a smart application which doesn't rely on its own code structure.", 'start': 7885.653, 'duration': 5.384}], 'summary': 'Enables load balancing, shared caches, and code-on-demand for client applets, simplifying application code structure.', 'duration': 22.578, 'max_score': 7868.459, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s7868459.jpg'}, {'end': 7936.237, 'src': 'embed', 'start': 7906.212, 'weight': 1, 'content': [{'end': 7910.157, 'text': 'We update a resource and we delete a resource now to do these actions.', 'start': 7906.212, 'duration': 3.945}, {'end': 7914.823, 'text': 'You can actually use the HTTP methods, which are nothing but the rest API methods.', 'start': 7910.217, 'duration': 4.606}, {'end': 7920.046, 'text': 'So if you can see on my screen, to create a resource, we use the post method to read a resource.', 'start': 7915.283, 'duration': 4.763}, {'end': 7922.428, 'text': 'We use the get method to update a resource.', 'start': 7920.086, 'duration': 2.342}, {'end': 7924.809, 'text': 'We use the put method and to delete the resource.', 'start': 7922.468, 'duration': 2.341}, {'end': 7926.13, 'text': 'We use a delete method.', 'start': 7924.849, 'duration': 1.281}, {'end': 7932.014, 'text': 'So guys, these are the various methods of rest API and all these methods are the HTTP methods.', 'start': 7926.53, 'duration': 5.484}, {'end': 7936.237, 'text': "So I hope that you've understood what is best API and what are the methods of it.", 'start': 7932.614, 'duration': 3.623}], 'summary': 'The rest api involves using http methods like post, get, put, and delete to create, read, update, and delete resources.', 'duration': 30.025, 'max_score': 7906.212, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s7906212.jpg'}, {'end': 8549.884, 'src': 'embed', 'start': 8518.135, 'weight': 2, 'content': [{'end': 8520.536, 'text': "Now, let's say, you know, you want to get a list of customers right now.", 'start': 8518.135, 'duration': 2.401}, {'end': 8523.957, 'text': 'For example over here if you observe in the methods I was using the spring method.', 'start': 8520.576, 'duration': 3.381}, {'end': 8527.558, 'text': "So I was basically returning a string now, let's say if you want to get the list method.", 'start': 8523.977, 'duration': 3.581}, {'end': 8533.68, 'text': 'So for that initially itself, what I had done was I changed the crude repository to the JPA repository.', 'start': 8527.598, 'duration': 6.082}, {'end': 8539.882, 'text': 'not change that, because you know the JPA repository extends the page sorting repository and also the crude repository itself right?', 'start': 8533.68, 'duration': 6.202}, {'end': 8542.262, 'text': 'So we have all the methods all together, right?', 'start': 8540.142, 'duration': 2.12}, {'end': 8543.983, 'text': 'So if I just double click on over here.', 'start': 8542.282, 'duration': 1.701}, {'end': 8549.884, 'text': 'So now coming back to the controller, what we can basically do is that you know, if you want to see, a list is returned.', 'start': 8544.642, 'duration': 5.242}], 'summary': 'The transcript discusses using jpa repository to get a list of customers in a method.', 'duration': 31.749, 'max_score': 8518.135, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s8518135.jpg'}, {'end': 8672.432, 'src': 'embed', 'start': 8644.987, 'weight': 3, 'content': [{'end': 8648.91, 'text': "But if I reload, you'll see that you know the output is in the form of a JSON format, right?", 'start': 8644.987, 'duration': 3.923}, {'end': 8652.052, 'text': "So, guys, that's how basically you can play around with the services.", 'start': 8649.35, 'duration': 2.702}, {'end': 8658.256, 'text': 'But yet if you want to play around more with the services, I would suggest that you know, you should go forward and use the postman client.', 'start': 8652.392, 'duration': 5.864}, {'end': 8662.579, 'text': 'So without any further ado, let me just open the postman client and show you how that looks.', 'start': 8658.616, 'duration': 3.963}, {'end': 8665.563, 'text': 'Right so installing postman is really simple guys.', 'start': 8662.919, 'duration': 2.644}, {'end': 8668.967, 'text': 'You just have to go to their official website and then install postman,', 'start': 8665.583, 'duration': 3.384}, {'end': 8672.432, 'text': "and then automatically you'll see that you know the postman gets configured for your system.", 'start': 8668.967, 'duration': 3.465}], 'summary': 'Using postman for service testing is simple and recommended.', 'duration': 27.445, 'max_score': 8644.987, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s8644987.jpg'}, {'end': 9138.065, 'src': 'embed', 'start': 9111.692, 'weight': 4, 'content': [{'end': 9116.637, 'text': 'So the port method is basically used to update a resource right now to update a resource again.', 'start': 9111.692, 'duration': 4.945}, {'end': 9117.878, 'text': 'You have to do the same thing.', 'start': 9116.677, 'duration': 1.201}, {'end': 9120.841, 'text': "Let's say, you know, you want to update the details of the first customer.", 'start': 9118.178, 'duration': 2.663}, {'end': 9124.867, 'text': "So to do that, what you'll do is you'll basically create a new method, right?", 'start': 9121.201, 'duration': 3.666}, {'end': 9128.913, 'text': "So I'll just copy paste this particular section and then I'll change right.", 'start': 9124.887, 'duration': 4.026}, {'end': 9130.997, 'text': "So I'll just change it to put mapping.", 'start': 9128.933, 'duration': 2.064}, {'end': 9135.544, 'text': "and then I'll import the required libraries right after that.", 'start': 9132.563, 'duration': 2.981}, {'end': 9138.065, 'text': "What I'll do is I have to basically change the path also.", 'start': 9135.584, 'duration': 2.481}], 'summary': "The 'port' method is used to update a resource by creating a new method and changing the path.", 'duration': 26.373, 'max_score': 9111.692, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s9111692.jpg'}, {'end': 9747.33, 'src': 'embed', 'start': 9726.86, 'weight': 5, 'content': [{'end': 9736.685, 'text': "Let's say I change the port number to be 8085 and then I've enabled the H2 database and the data source platform is H2 and our database name is list of customers right now.", 'start': 9726.86, 'duration': 9.825}, {'end': 9743.208, 'text': "after that, basically I'm just going to use a sequel file to make sure that you know the data is getting automatically entered right.", 'start': 9736.685, 'duration': 6.523}, {'end': 9747.33, 'text': "so to do that, what I'm going to do is I'm going to go back to my project and over here.", 'start': 9743.208, 'duration': 4.122}], 'summary': 'Changing port number to 8085, enabling h2 database, using sequel file for data entry.', 'duration': 20.47, 'max_score': 9726.86, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s9726860.jpg'}, {'end': 9973.464, 'src': 'embed', 'start': 9943.918, 'weight': 6, 'content': [{'end': 9950.084, 'text': 'So similarly, if we just use the get method and use 8085 first customers and then, if I click on send,', 'start': 9943.918, 'duration': 6.166}, {'end': 9956.231, 'text': "you'll see an output of all the five customers with all the details, like you know customer name, customer email ID and the customer ID.", 'start': 9950.084, 'duration': 6.147}, {'end': 9958.719, 'text': "For example, let's say you want to delete a customer.", 'start': 9956.798, 'duration': 1.921}, {'end': 9962.76, 'text': "So for that you'll just go to delete and let's say you want to delete the second customer.", 'start': 9959.079, 'duration': 3.681}, {'end': 9965.822, 'text': "You'll just mention the customer ID and then click on send.", 'start': 9962.78, 'duration': 3.042}, {'end': 9973.464, 'text': 'now, once you click on send, you can just go back to get statement again and then we go back to the customers URL and then we can clearly see that.', 'start': 9965.822, 'duration': 7.642}], 'summary': 'Using the get method, 8085 customers can be accessed, and specific customers can be deleted by mentioning their id and clicking on send.', 'duration': 29.546, 'max_score': 9943.918, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s9943918.jpg'}, {'end': 10041.682, 'src': 'embed', 'start': 10018.584, 'weight': 7, 'content': [{'end': 10027.51, 'text': 'So spring security is basically a highly customizable authentication and access control framework and focuses both on authentication and authorization to Java applications.', 'start': 10018.584, 'duration': 8.926}, {'end': 10033.934, 'text': "It's basically the de facto standard securing spring-based applications and has mainly three kinds of security models.", 'start': 10027.95, 'duration': 5.984}, {'end': 10038.557, 'text': 'That is the spring security curb Ross spring security auth and spring security salmon.', 'start': 10034.034, 'duration': 4.523}, {'end': 10041.682, 'text': "So I'm not going to go into depth of each one of them one by one.", 'start': 10039.221, 'duration': 2.461}], 'summary': 'Spring security is a highly customizable framework for authentication and access control, with three main security models.', 'duration': 23.098, 'max_score': 10018.584, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s10018584.jpg'}], 'start': 7868.459, 'title': 'Rest api, spring boot, and java methods', 'summary': 'Covers principles and methods of rest api, using spring boot for database operations, utilizing optional class and list method in java, employing rest services in spring data, creating and accessing data in spring boot, and spring security basics.', 'chapters': [{'end': 8218.207, 'start': 7868.459, 'title': 'Rest api principles and methods', 'summary': 'Explains the principles and methods of rest api, including load balancing, shared caches, and code-on-demand, and provides a detailed guide on implementing rest services using http methods and request mapping in springboard.', 'duration': 349.748, 'highlights': ['The chapter explains the principles and methods of REST API, including load balancing, shared caches, and code-on-demand. The chapter introduces the principles of REST API, such as load balancing, shared caches, and code-on-demand, which promote scalability and enable the downloading and use of client code within the application.', 'The detailed guide on implementing REST services using HTTP methods and request mapping in Springboard. The detailed guide covers the usage of HTTP methods (POST, GET, PUT, DELETE) for creating, reading, updating, and deleting resources and demonstrates the implementation of REST services using request mapping in Springboard.']}, {'end': 8549.884, 'start': 8220.58, 'title': 'Using spring boot for database operations', 'summary': 'Demonstrates using spring boot for database operations, including inserting, retrieving, and updating customer details, as well as configuring the request mapping and utilizing jpa repository for crud operations.', 'duration': 329.304, 'highlights': ['Demonstrating inserting and retrieving customer details The speaker demonstrates inserting customer details and retrieving them from the database, showcasing the process of inserting and retrieving queries and the resulting output, with an example of retrieving specific customer details.', 'Configuring request mapping for specific customer details The chapter explains the process of configuring the request mapping to retrieve specific customer details by ID, illustrating the method for finding by ID and executing the project to retrieve the desired customer details.', 'Utilizing JPA repository for CRUD operations The speaker discusses the use of JPA repository for CRUD operations, emphasizing its extension of the page sorting repository and demonstrating its capability to handle all the required methods for CRUD operations.']}, {'end': 9299.214, 'start': 8549.924, 'title': 'Using optional class and list method in java', 'summary': 'Discusses using the optional class and list method in java to retrieve and manipulate data, including demonstrating how to return data in json format, use postman client for testing, and perform crud operations (create, read, update, delete) with corresponding http methods, achieving these functionalities through detailed code examples and explanations.', 'duration': 749.29, 'highlights': ['Demonstrating retrieval of data in JSON format The speaker explains how to use the Optional class and List method to retrieve data in JSON format, showcasing the ability to convert data from string format to JSON format and retrieve specific details of a customer.', 'Using Postman client for testing The speaker emphasizes the importance of using Postman as a GUI tool to test and visualize HTTP methods, such as GET, POST, PATCH, DELETE, showcasing how to interact with the application and retrieve data in different formats like XML and JSON.', 'Performing CRUD operations with corresponding HTTP methods The speaker demonstrates how to implement CRUD operations (Create, Read, Update, Delete) using POST, GET, PUT, and DELETE methods, providing detailed code examples and explanations for each operation, including how to create a new customer, update customer details, and delete a specific record.']}, {'end': 9565.905, 'start': 9299.594, 'title': 'Using rest services in spring data', 'summary': 'Explains how to use rest services to manipulate and pass data from web application to database, and vice versa, in springboard. it also introduces spring data rest, which is used to fetch and manipulate data for rest web services.', 'duration': 266.311, 'highlights': ['The chapter explains how to use REST services to manipulate and pass data from web application to database, and vice versa, in Springboard. The speaker demonstrates using the port method to update data and shows changes in customer IDs and emails in the database.', 'It also introduces Spring Data REST, which is used to fetch and manipulate data for REST web services. Spring Data REST is a part of the Spring Data project that enables building hypermedia-driven REST web services and exposes features such as dynamically filtering collection resources and supporting various databases.']}, {'end': 9982.388, 'start': 9566.045, 'title': 'Creating and accessing data in spring boot', 'summary': 'Details the creation of a customer repository in spring boot, configuration of rest repositories, setting up an h2 database, inserting data using sql queries, and fetching, deleting customer records using spring data rest.', 'duration': 416.343, 'highlights': ["Setting up H2 database and configuring application properties The speaker mentions changing the port number to 8085, enabling the H2 database, setting the data source platform to H2, and defining the database name as 'list of customers'.", "Creating and inserting data using SQL queries The process of creating a new SQL file, writing insert queries for customer data, initializing the table using '@Entity' annotation, and executing the SQL queries to populate the database with customer records.", "Configuring REST repositories and fetching data Explanation of using the '@RepositoryRestResource' annotation to define the collection resource URLs and paths, as well as demonstrating the retrieval of customer data using the GET method and the resulting output.", 'Deleting customer records using Spring Data REST The process of deleting a customer record by specifying the customer ID in the delete request using Spring Data REST, and verifying the successful deletion by querying the customer records.']}, {'end': 10273.398, 'start': 9983.172, 'title': 'Spring security basics', 'summary': 'Covers the basics of spring security, including its importance, functionality, and the process of securing web applications using spring security, highlighting the creation of html files, and their functionality.', 'duration': 290.226, 'highlights': ['Spring security is basically a highly customizable authentication and access control framework and focuses both on authentication and authorization to Java applications. It emphasizes the importance of Spring Security as a customizable authentication and access control framework.', 'Spring security is basically the de facto standard securing spring-based applications and has mainly three kinds of security models. It highlights the prevalence of Spring Security in securing spring-based applications.', "The transcript discusses the creation of HTML files for a web application, including 'home.html', 'edureka.html', and 'login.html'. It explains the process of creating HTML files for a web application, such as 'home.html', 'edureka.html', and 'login.html'."]}], 'duration': 2404.939, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s7868459.jpg', 'highlights': ['The chapter covers principles and methods of REST API, including load balancing, shared caches, and code-on-demand.', 'The detailed guide covers the usage of HTTP methods (POST, GET, PUT, DELETE) for creating, reading, updating, and deleting resources.', 'The speaker discusses the use of JPA repository for CRUD operations, emphasizing its capability to handle all the required methods for CRUD operations.', 'The speaker explains how to use the Optional class and List method to retrieve data in JSON format and the importance of using Postman as a GUI tool to test and visualize HTTP methods.', 'The chapter demonstrates using the port method to update data and shows changes in customer IDs and emails in the database, and introduces Spring Data REST for building hypermedia-driven REST web services.', "The speaker mentions changing the port number to 8085, enabling the H2 database, setting the data source platform to H2, and defining the database name as 'list of customers', and explains the process of creating a new SQL file, writing insert queries for customer data, initializing the table using '@Entity' annotation, and executing the SQL queries to populate the database with customer records.", 'It explains the process of deleting a customer record by specifying the customer ID in the delete request using Spring Data REST, and verifying the successful deletion by querying the customer records.', 'It emphasizes the importance of Spring Security as a customizable authentication and access control framework and its prevalence in securing spring-based applications, and explains the process of creating HTML files for a web application.']}, {'end': 11731.465, 'segs': [{'end': 10409.894, 'src': 'embed', 'start': 10377.729, 'weight': 1, 'content': [{'end': 10380.79, 'text': 'two of the view controllers reference to the view whose name is home.', 'start': 10377.729, 'duration': 3.061}, {'end': 10383.372, 'text': 'that is basically, which is defined by the home.html file.', 'start': 10380.79, 'duration': 2.582}, {'end': 10388.495, 'text': 'That is these two and the other two basically reference to the edureka and the login.html file.', 'start': 10383.392, 'duration': 5.103}, {'end': 10390.897, 'text': 'So that is basically the controller part guys.', 'start': 10388.955, 'duration': 1.942}, {'end': 10393.439, 'text': "So now what we've done is we've created the model.", 'start': 10391.558, 'duration': 1.881}, {'end': 10397.843, 'text': "We've created the view on what the user should see and then we've also created the controller.", 'start': 10393.479, 'duration': 4.364}, {'end': 10400.726, 'text': 'But yes, we have to configure our security right?', 'start': 10398.083, 'duration': 2.643}, {'end': 10404.329, 'text': 'So when I say you have to configure your spring security in the application,', 'start': 10400.966, 'duration': 3.363}, {'end': 10409.894, 'text': 'the spring security basically automatically secures all the HTTP endpoints with the basic authentication.', 'start': 10404.329, 'duration': 5.565}], 'summary': 'Two view controllers reference home.html and two reference edureka and login.html. spring security secures all http endpoints with basic authentication.', 'duration': 32.165, 'max_score': 10377.729, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s10377729.jpg'}, {'end': 10489.906, 'src': 'embed', 'start': 10464.412, 'weight': 0, 'content': [{'end': 10471.06, 'text': 'it enable web security annotation to enable spring securities web security support and provide the spring MVC integration.', 'start': 10464.412, 'duration': 6.648}, {'end': 10472.341, 'text': 'Not only this,', 'start': 10471.701, 'duration': 0.64}, {'end': 10481.104, 'text': 'but it also extends to the web security configure adapter and overrides a couple of its methods to set some specific values of the web security configuration.', 'start': 10472.341, 'duration': 8.763}, {'end': 10485.305, 'text': 'after that, if you come down to the code, we see configure HTTP security HTTP.', 'start': 10481.104, 'duration': 4.201}, {'end': 10489.906, 'text': 'Well, this method basically defines which URL paths should be secured and which should not be.', 'start': 10485.585, 'duration': 4.321}], 'summary': 'Enables web security annotation for spring mvc integration and sets specific values for web security configuration.', 'duration': 25.494, 'max_score': 10464.412, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s10464412.jpg'}, {'end': 10617.44, 'src': 'embed', 'start': 10590.046, 'weight': 2, 'content': [{'end': 10595.088, 'text': "So for that, what I'm going to do over here is that you know I'll go back to my Edureka page and then you can clearly see that.", 'start': 10590.046, 'duration': 5.042}, {'end': 10599.469, 'text': "you know we've used the HTTP servlet dot remote user method to basically integrate that.", 'start': 10595.088, 'duration': 4.381}, {'end': 10604.211, 'text': 'you know we display the username of spring securities integration with this particular method.', 'start': 10599.469, 'duration': 4.742}, {'end': 10608.194, 'text': 'Apart from that, the logout form basically submits a post method to log out.', 'start': 10604.751, 'duration': 3.443}, {'end': 10614.658, 'text': 'that is, the slash logout URL, and upon successfully logging out, it will redirect the user to slash login question mark logout.', 'start': 10608.194, 'duration': 6.464}, {'end': 10617.44, 'text': 'So guys that was about all the files together.', 'start': 10615.418, 'duration': 2.022}], 'summary': 'Demonstrated spring security integration with http servlet, logout method, and redirection.', 'duration': 27.394, 'max_score': 10590.046, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s10590046.jpg'}, {'end': 10947.579, 'src': 'embed', 'start': 10922.039, 'weight': 3, 'content': [{'end': 10929.981, 'text': 'It also comes with embedded Tomcat server, server containers and Jetty to avoid the usage of war files, which is the big thing now, because you know,', 'start': 10922.039, 'duration': 7.942}, {'end': 10932.402, 'text': 'nobody wants to use war files for their applications.', 'start': 10929.981, 'duration': 2.421}, {'end': 10938.208, 'text': 'Spring Boot also provides an opinionated view to reduce the developers effort and simplify the Maven configurations.', 'start': 10932.762, 'duration': 5.446}, {'end': 10941.432, 'text': 'It provides CLI tool to develop and test applications.', 'start': 10938.629, 'duration': 2.803}, {'end': 10947.579, 'text': 'It also comes with Spring Boot starters to ensure dependency management and also provides various security metrics.', 'start': 10941.772, 'duration': 5.807}], 'summary': 'Spring boot offers embedded servers, opinionated views, cli tool, and starters for dependency management and security metrics.', 'duration': 25.54, 'max_score': 10922.039, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s10922039.jpg'}, {'end': 11089.409, 'src': 'embed', 'start': 11064.855, 'weight': 5, 'content': [{'end': 11070.358, 'text': "Now, let's move on to the next question that is explain how to create a springboard application using Maven.", 'start': 11064.855, 'duration': 5.503}, {'end': 11078.503, 'text': 'Well, this is one of the basic questions that you can be asked in your interviews that you know what are the different ways to basically create a springboard application using Maven?', 'start': 11070.979, 'duration': 7.524}, {'end': 11082.686, 'text': 'Well, there are ways, approaches to create a springboard application using Maven.', 'start': 11078.923, 'duration': 3.763}, {'end': 11089.409, 'text': "But if I have to name a few, then the most common ones are the springboard CLI's, the spring starter project wizard,", 'start': 11083.146, 'duration': 6.263}], 'summary': 'Explaining the different ways to create a springboard application using maven in interviews.', 'duration': 24.554, 'max_score': 11064.855, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11064855.jpg'}, {'end': 11232.939, 'src': 'embed', 'start': 11206.631, 'weight': 6, 'content': [{'end': 11211.254, 'text': 'That is, what are the Spring Boot starters and what are the different starters provided by Spring Boot?', 'start': 11206.631, 'duration': 4.623}, {'end': 11220.318, 'text': 'Well, Spring Boot starters are basically a set of convenient dependency management providers which can be used in the application to enable different kinds of dependencies.', 'start': 11212.074, 'duration': 8.244}, {'end': 11228.138, 'text': 'So basically these starters make development easy and rapid and all the available starters come under the group or the spring framework port.', 'start': 11220.996, 'duration': 7.142}, {'end': 11232.939, 'text': 'So if you ask me guys, what are spring boot starters, then just remember that, you know, the answer is really simple.', 'start': 11228.738, 'duration': 4.201}], 'summary': 'Spring boot starters provide convenient dependency management for enabling different dependencies, making development easy and rapid.', 'duration': 26.308, 'max_score': 11206.631, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11206631.jpg'}, {'end': 11361.534, 'src': 'embed', 'start': 11333.888, 'weight': 7, 'content': [{'end': 11336.85, 'text': 'you basically have to understand what is happening in the application right?', 'start': 11333.888, 'duration': 2.962}, {'end': 11344.494, 'text': 'So in such scenario, the spring actuator provides easy access to these features, such as identifying beans, CPU usage and many more,', 'start': 11337.35, 'duration': 7.144}, {'end': 11345.955, 'text': 'so you can just understand that you know.', 'start': 11344.494, 'duration': 1.461}, {'end': 11352.419, 'text': 'springboard actuator provides a very easy way to access the production ready rest points and fetch all kinds of information from the web.', 'start': 11345.955, 'duration': 6.464}, {'end': 11359.31, 'text': 'Now if you ask me, how are these points secured? Well, these points are secured by using the spring securities content negotiation strategy.', 'start': 11352.799, 'duration': 6.511}, {'end': 11361.534, 'text': 'So that is what spring actuator is guys.', 'start': 11359.811, 'duration': 1.723}], 'summary': 'Spring actuator provides easy access to application features, including identifying beans, cpu usage, and securing points with spring securities content negotiation strategy.', 'duration': 27.646, 'max_score': 11333.888, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11333888.jpg'}, {'end': 11401.515, 'src': 'embed', 'start': 11370.999, 'weight': 8, 'content': [{'end': 11373.4, 'text': 'if someone asks you, what is springboard dependency management?', 'start': 11370.999, 'duration': 2.401}, {'end': 11379.384, 'text': 'and the answer is very simple, guys that it is basically used to manage dependencies and configuration automatically,', 'start': 11373.4, 'duration': 5.984}, {'end': 11382.446, 'text': 'without you specifying the version for any of that dependencies.', 'start': 11379.384, 'duration': 3.062}, {'end': 11388.99, 'text': "So, basically, whenever you want to include any dependency for your application, you don't have to mention the version of it.", 'start': 11383.146, 'duration': 5.844}, {'end': 11396.234, 'text': 'automatically the springboard dependency management will figure out what version is required for the application and it will download that particular dependency for the application.', 'start': 11388.99, 'duration': 7.244}, {'end': 11401.515, 'text': 'So guys that was about springboard dependency management moving on to the next question.', 'start': 11396.969, 'duration': 4.546}], 'summary': 'Springboard dependency management automates dependency versioning, simplifying configuration.', 'duration': 30.516, 'max_score': 11370.999, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11370999.jpg'}, {'end': 11462.525, 'src': 'embed', 'start': 11421.838, 'weight': 9, 'content': [{'end': 11427.839, 'text': 'for explicit build support you need Maven 3.3 version or even the further versions can work, coming to Gradle.', 'start': 11421.838, 'duration': 6.001}, {'end': 11432.741, 'text': 'You need Gradle 4.4 version or more than that and coming to servlet container support.', 'start': 11427.859, 'duration': 4.882}, {'end': 11437.845, 'text': 'You basically need Tomcat 9.0 Jetty 9.4 and undertow 2.0.', 'start': 11432.881, 'duration': 4.964}, {'end': 11440.593, 'text': 'So guys, these are the basic requirements of a springboard system.', 'start': 11437.845, 'duration': 2.748}, {'end': 11443.039, 'text': "Let's move on with the next question.", 'start': 11441.375, 'duration': 1.664}, {'end': 11446.027, 'text': 'That is what is time leaf and how to use this time leaf.', 'start': 11443.099, 'duration': 2.928}, {'end': 11451.042, 'text': 'Well time leave is basically a server-side Java template engine used for web applications.', 'start': 11446.661, 'duration': 4.381}, {'end': 11458.164, 'text': 'It aims to bring natural template for your web application and can integrate well with spring framework and HTML Java web applications.', 'start': 11451.382, 'duration': 6.782}, {'end': 11462.525, 'text': 'So if you have to use time leave you basically have to add a dependency for time leave.', 'start': 11458.624, 'duration': 3.901}], 'summary': 'For spring boot, require maven 3.3+, gradle 4.4+ and servlet container versions tomcat 9.0, jetty 9.4, or undertow 2.0. thymeleaf is a server-side java template engine for web apps, integrating well with spring framework and html java web apps.', 'duration': 40.687, 'max_score': 11421.838, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11421838.jpg'}], 'start': 10273.398, 'title': 'Spring security and spring boot', 'summary': 'Covers securing web applications with spring security and discusses the key differences, advantages, and features of spring boot, including creating a spring boot application using maven, q&a related to spring boot, and configuring embedded tomcat server, devtools, spring initializer, and jdbc connection.', 'chapters': [{'end': 10727.65, 'start': 10273.398, 'title': 'Securing web application with spring security', 'summary': 'Covers the process of configuring a model view controller, creating a security configuration class to enable spring security, and displaying the username upon successful login, with an emphasis on securing the application based on user login.', 'duration': 454.252, 'highlights': ['Configuring a model view controller The process involves creating a controller class and configuring the model view controller, with specific reference to home, edureka, and login.html files.', "Creating a security configuration class for Spring Security The creation of a security configuration class involves annotating with '@EnableWebSecurity', extending 'WebSecurityConfigurerAdapter', and defining secure URL paths and authentication settings.", "Displaying the username upon successful login Upon successful login, the application displays the username using 'HTTPServlet.remoteUser' method integrated with Spring Security."]}, {'end': 11168.244, 'start': 10727.97, 'title': 'Spring vs spring boot: key differences and advantages', 'summary': "Discusses the differences between spring and spring boot, highlighting that spring is a web application framework while spring boot is a module of spring, emphasizing spring boot's simplicity and advantages, and explaining how to create a spring boot application using maven. key points include: differences between spring and spring boot, need and advantages of spring boot, features of spring boot, and creating a spring boot application using maven.", 'duration': 440.274, 'highlights': ['Differences between Spring and Spring Boot Spring is a web application framework based on Java, while Spring Boot is a module of Spring used to create standalone Spring-based applications; Spring is more complex than Spring Boot, which provides various annotations to simplify tasks.', "Advantages of Spring Boot Spring Boot provides auto configuration, standalone applications with non-functional features, embedded servers, opinionated view to reduce developers' effort, CLI tool for development, starters for dependency management, security metrics, and integration with Spring ecosystem.", 'Features of Spring Boot Key features of Spring Boot include Spring CLI for writing applications, starter dependency for aggregating common dependencies, spring initializer for project structure creation, auto-configuration, spring actuator for running applications, and logging and security for application security.', 'Creating a Spring Boot Application using Maven Various approaches, such as Spring Boot CLI, spring starter project wizard, spring initializer, and spring Maven project, can be used to create a Spring Boot application using Maven.', 'Possible Sources of External Configuration Spring Boot allows using environment variables, property files, command line arguments, YAML files, and system properties for external configuration; application properties, command line properties, and profile specific properties are the most possible sources of external configuration.']}, {'end': 11476.95, 'start': 11168.624, 'title': 'Spring boot q&a and features overview', 'summary': 'Covers the q&a related to spring boot, including the sources of external configuration, the background execution of a spring boot application, spring boot starters and their popular types, spring actuator and its advantages, spring boot dependency management, minimum requirements for setting up a spring boot system, and timeleaf usage with spring boot.', 'duration': 308.326, 'highlights': ['Explanation of Spring Boot Starters Spring Boot starters are a set of convenient dependency management providers used to enable different kinds of dependencies, making development easy and rapid. Popular starters include Spring Boot starter web, Spring Boot starter data JPA, and Spring Boot starter security.', "Overview of Spring Actuator Spring Actuator is a feature that provides easy access to production-ready rest points and allows fetching various information from the web, secured by using the Spring Security's content negotiation strategy.", 'Description of Spring Boot Dependency Management Spring Boot dependency management is used to manage dependencies and configuration automatically without specifying the version for any of the dependencies, ensuring automatic download of the required dependency version for the application.', 'Minimum Requirements for Setting up a Spring Boot System For Spring Boot 2.1.7 release, the minimum requirements include Java 8 or higher, Spring Framework 5.1.9 or higher, Maven 3.3 or higher for explicit build support, and Tomcat 9.0, Jetty 9.4, or Undertow 2.0 for servlet container support.', "Introduction to Timeleaf and Its Usage with Spring Boot Timeleaf is a server-side Java template engine used for web applications, aiming to bring natural templates for web applications and integrate well with Spring Framework and HTML Java web applications. To use Timeleaf with Spring Boot, the 'spring-boot-starter-thymeleaf' dependency needs to be added."]}, {'end': 11731.465, 'start': 11477.63, 'title': 'Spring boot: tomcat server, dev tools, spring initializer, jdbc connection', 'summary': 'Covers configuring an embedded tomcat server in spring boot, changing the port using application properties file, utilizing spring boot devtools, creating a spring boot project with spring initializer, and connecting a spring boot application to a database using jdbc.', 'duration': 253.835, 'highlights': ['Configuring an embedded Tomcat server The process of changing the port of an embedded Tomcat server in Spring Boot using the application.properties file, with an example of assigning the server.port to 8081.', 'Utilizing Spring Boot DevTools Explanation of the purpose of Spring Boot DevTools, including its automatic disablement in production and the required dependency to include it in the project.', 'Creating a Spring Boot project with Spring Initializer The steps to create a Spring Boot project using Spring Initializer, including choosing Maven project, adding dependencies, providing project details, downloading and importing the project into the Spring Tool Suite (STS) ID.', 'Connecting a Spring Boot application to a database using JDBC The process of connecting a Spring Boot application to a database, including creating a database in MySQL, creating a table with specific columns and data types, and mentioning the required commands.']}], 'duration': 1458.067, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s10273398.jpg', 'highlights': ["Creating a security configuration class for Spring Security involves annotating with '@EnableWebSecurity', extending 'WebSecurityConfigurerAdapter', and defining secure URL paths and authentication settings.", 'Configuring a model view controller involves creating a controller class and configuring the model view controller, with specific reference to home, edureka, and login.html files.', "Displaying the username upon successful login using 'HTTPServlet.remoteUser' method integrated with Spring Security.", "Advantages of Spring Boot include auto configuration, standalone applications with non-functional features, embedded servers, opinionated view to reduce developers' effort, CLI tool for development, starters for dependency management, security metrics, and integration with Spring ecosystem.", 'Features of Spring Boot include Spring CLI for writing applications, starter dependency for aggregating common dependencies, spring initializer for project structure creation, auto-configuration, spring actuator for running applications, and logging and security for application security.', 'Creating a Spring Boot Application using Maven can be done through various approaches such as Spring Boot CLI, spring starter project wizard, spring initializer, and spring Maven project.', 'Spring Boot starters are a set of convenient dependency management providers used to enable different kinds of dependencies, making development easy and rapid.', "Spring Actuator provides easy access to production-ready rest points and allows fetching various information from the web, secured by using the Spring Security's content negotiation strategy.", 'Spring Boot dependency management is used to manage dependencies and configuration automatically without specifying the version for any of the dependencies, ensuring automatic download of the required dependency version for the application.', 'Minimum Requirements for Setting up a Spring Boot System include Java 8 or higher, Spring Framework 5.1.9 or higher, Maven 3.3 or higher for explicit build support, and Tomcat 9.0, Jetty 9.4, or Undertow 2.0 for servlet container support.', 'Timeleaf is a server-side Java template engine used for web applications, aiming to bring natural templates for web applications and integrate well with Spring Framework and HTML Java web applications.']}, {'end': 12332.178, 'segs': [{'end': 11785.882, 'src': 'embed', 'start': 11758.938, 'weight': 1, 'content': [{'end': 11762.601, 'text': 'you know springboard data source URL is basically my sequel localhost.', 'start': 11758.938, 'duration': 3.663}, {'end': 11764.061, 'text': 'that is basically your defining that.', 'start': 11762.601, 'duration': 1.46}, {'end': 11769.985, 'text': "you know you're connecting it to a my sequel database and then you're mentioning the username to be root password, to be my sequel,", 'start': 11764.061, 'duration': 5.924}, {'end': 11774.168, 'text': "and then you're enabling the spring dot, JPA dot, Hibernate DDL to be create or drop.", 'start': 11769.985, 'duration': 4.183}, {'end': 11779.174, 'text': 'Now, once this is also done, what happens is that if you check your main application or Java class,', 'start': 11774.728, 'duration': 4.446}, {'end': 11781.917, 'text': "you'll basically have the code that you can see on my screen, that you know.", 'start': 11779.174, 'duration': 2.743}, {'end': 11785.882, 'text': "I've created a package and then I've basically imported the required dependencies,", 'start': 11781.917, 'duration': 3.965}], 'summary': 'Setting up springboard data source with mysql localhost, defining connection, and enabling hibernate ddl to create or drop. importing required dependencies in java class.', 'duration': 26.944, 'max_score': 11758.938, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11758938.jpg'}, {'end': 11820.805, 'src': 'embed', 'start': 11791.303, 'weight': 2, 'content': [{'end': 11793.705, 'text': 'Now, once you check your application or Java class.', 'start': 11791.303, 'duration': 2.402}, {'end': 11800.312, 'text': 'also, you have to next create a controller to handle the HTTP request by mentioning the code that you can see on my screen again right?', 'start': 11793.705, 'duration': 6.607}, {'end': 11801.793, 'text': 'So basically over here.', 'start': 11800.692, 'duration': 1.101}, {'end': 11807.499, 'text': "We've again imported the required annotations like request mapping or to wire JDBC template and less controller.", 'start': 11801.833, 'duration': 5.666}, {'end': 11808.619, 'text': 'Right after that.', 'start': 11807.879, 'duration': 0.74}, {'end': 11814.642, 'text': "I've just used the rest controller annotation or to white JDBC and the request mapping annotation and then over here.", 'start': 11808.66, 'duration': 5.982}, {'end': 11816.803, 'text': "I've just given this command of insert right?", 'start': 11814.662, 'duration': 2.141}, {'end': 11820.805, 'text': 'So what happens is that, whatever this particular application is executed,', 'start': 11817.084, 'duration': 3.721}], 'summary': 'Creating a controller with annotations to handle http requests in java application.', 'duration': 29.502, 'max_score': 11791.303, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11791303.jpg'}, {'end': 11851.534, 'src': 'embed', 'start': 11842.172, 'weight': 0, 'content': [{'end': 11848.033, 'text': "that you've understood what are the steps to insert data into a MySQL database and connect the Spring Boot application with a database.", 'start': 11842.172, 'duration': 5.861}, {'end': 11851.534, 'text': "right now, any interviewer won't ask you to sit and write a code for it.", 'start': 11848.033, 'duration': 3.501}], 'summary': 'Learned steps to insert data in mysql & connect spring boot with database.', 'duration': 9.362, 'max_score': 11842.172, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11842172.jpg'}, {'end': 11900.004, 'src': 'embed', 'start': 11867.351, 'weight': 3, 'content': [{'end': 11875.253, 'text': 'You can just enable the HTTP support in springboard by using this particular command that you can see on my screen that a server dot HTTP 2 dot enabled equal to true.', 'start': 11867.351, 'duration': 7.902}, {'end': 11879.014, 'text': 'So whenever you make it true, it is basically enabled next.', 'start': 11875.693, 'duration': 3.321}, {'end': 11880.095, 'text': "Let's look into the question.", 'start': 11879.054, 'duration': 1.041}, {'end': 11885.216, 'text': 'What are the differences between at-the-rate request mapping and at-the-rate list controller annotation in springboard.', 'start': 11880.135, 'duration': 5.081}, {'end': 11888.781, 'text': 'So the differences between these two annotations are really simple guys.', 'start': 11885.74, 'duration': 3.041}, {'end': 11900.004, 'text': 'Well, the address request mapping annotation is basically used to provide the routing information and tells to spring that you know any HTTP request must be mapped to a respective method also to use this annotation.', 'start': 11888.961, 'duration': 11.043}], 'summary': "Enable http support in springboard with 'server.http2.enabled=true'. address request mapping for routing http requests in spring.", 'duration': 32.653, 'max_score': 11867.351, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11867351.jpg'}, {'end': 12047.142, 'src': 'embed', 'start': 12011.912, 'weight': 4, 'content': [{'end': 12017.595, 'text': "if we just if you want to just execute this groovy file, what you'll do is that you know you'll mention this command of dot slash,", 'start': 12011.912, 'duration': 5.683}, {'end': 12020.256, 'text': 'spring run and then mention the name of the groovy file.', 'start': 12017.595, 'duration': 2.661}, {'end': 12024.999, 'text': 'So since I had mentioned it as sample dot groovy and mention sample dot groovy and semicolon.', 'start': 12020.276, 'duration': 4.723}, {'end': 12031.157, 'text': 'So guys that was about what is springboard CLI and how to execute a springboard project using springboard CLI.', 'start': 12025.916, 'duration': 5.241}, {'end': 12033.238, 'text': "Let's move forward with the next question.", 'start': 12031.578, 'duration': 1.66}, {'end': 12036.179, 'text': 'That is, what are the differences between JPA and Hibernate?', 'start': 12033.258, 'duration': 2.921}, {'end': 12039.96, 'text': 'Well, this is one of the most common questions that is asked in your springboard interviews.', 'start': 12036.539, 'duration': 3.421}, {'end': 12047.142, 'text': 'Well, JPA is basically a data access abstraction which is used to reduce the amount of boilerplate code coming to Hibernate.', 'start': 12040.56, 'duration': 6.582}], 'summary': 'Using springboard cli to execute a groovy file and differences between jpa and hibernate were discussed.', 'duration': 35.23, 'max_score': 12011.912, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12011912.jpg'}, {'end': 12099.66, 'src': 'embed', 'start': 12063.047, 'weight': 6, 'content': [{'end': 12068.552, 'text': 'Well, to create a custom endpoint in Spring Boot 2.x, you can basically use the aderite endpoint annotation.', 'start': 12063.047, 'duration': 5.505}, {'end': 12076.118, 'text': 'So springboard basically exposes endpoints using aderite web endpoint annotation or aderite web endpoint extension over HTTP,', 'start': 12069.092, 'duration': 7.026}, {'end': 12078.1, 'text': 'with the help of spring MVC or Jersey.', 'start': 12076.118, 'duration': 1.982}, {'end': 12080.43, 'text': "Let's move forward with the next question.", 'start': 12078.749, 'duration': 1.681}, {'end': 12081.851, 'text': 'That is what is spring data?', 'start': 12080.47, 'duration': 1.381}, {'end': 12087.313, 'text': 'Well, spring data aims to make it easy for the developers to use relational and non-relational databases,', 'start': 12082.071, 'duration': 5.242}, {'end': 12090.175, 'text': 'cloud-based data services and other data access Technologies.', 'start': 12087.313, 'duration': 2.862}, {'end': 12095.037, 'text': 'So, basically, it makes it easy for data access and still retains the underlying data right?', 'start': 12090.455, 'duration': 4.582}, {'end': 12099.66, 'text': "So whenever you use spring data, remember that you know you're using it to connect with relational databases,", 'start': 12095.057, 'duration': 4.603}], 'summary': 'Spring boot 2.x uses aderite endpoint annotation to create custom endpoints, while spring data simplifies data access for developers.', 'duration': 36.613, 'max_score': 12063.047, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12063047.jpg'}, {'end': 12213.886, 'src': 'embed', 'start': 12186.058, 'weight': 8, 'content': [{'end': 12190.86, 'text': 'Auto configuration is basically used to automatically configure the required configuration and to disable it.', 'start': 12186.058, 'duration': 4.802}, {'end': 12192.881, 'text': 'You just have to use the attribute name exclude.', 'start': 12190.88, 'duration': 2.001}, {'end': 12195.182, 'text': "Now, let's move forward with the next question.", 'start': 12193.481, 'duration': 1.701}, {'end': 12200.744, 'text': 'That is what are the differences between address springboard application and either it enable Auto configuration annotation.', 'start': 12195.202, 'duration': 5.542}, {'end': 12204.382, 'text': 'Talking about address Spring Boot application annotation first.', 'start': 12201.661, 'duration': 2.721}, {'end': 12209.925, 'text': 'It is basically used in the main class or the bootstrap class and it is a combination of at the rate configuration.', 'start': 12204.422, 'duration': 5.503}, {'end': 12213.886, 'text': 'at the rate components can, and either it enable Auto configuration annotations.', 'start': 12209.925, 'duration': 3.961}], 'summary': "Auto configuration automates required configurations and can be disabled with 'exclude' attribute. 'address spring boot application' annotation is a combination of '@configuration', '@componentscan', and '@enableautoconfiguration'.", 'duration': 27.828, 'max_score': 12186.058, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12186058.jpg'}, {'end': 12317.631, 'src': 'embed', 'start': 12287.157, 'weight': 10, 'content': [{'end': 12293.779, 'text': "You'll basically mention packaging tags and you'll mention jar inside that as you can see on my screen similarly to build a war file.", 'start': 12287.157, 'duration': 6.622}, {'end': 12295.76, 'text': 'You will mention war inside the packaging tags.', 'start': 12293.799, 'duration': 1.961}, {'end': 12300.221, 'text': 'So guys that was about how to deploy springboard web application as a jar or a waterfall.', 'start': 12296.22, 'duration': 4.001}, {'end': 12302.638, 'text': "Now, let's move forward with the next question.", 'start': 12300.916, 'duration': 1.722}, {'end': 12306.181, 'text': 'That is, can you give an example for read only as true in the transaction menu?', 'start': 12302.658, 'duration': 3.523}, {'end': 12312.727, 'text': 'Well, the example for read only as true in the transaction management could be, as you can see on my screen, what you can answer is that you know.', 'start': 12306.601, 'duration': 6.126}, {'end': 12317.631, 'text': "you can basically consider the scenario where you have to read data from database, For example, let's say,", 'start': 12312.727, 'duration': 4.904}], 'summary': 'Deploy springboard web app as jar or war file, and use read-only as true in transaction management.', 'duration': 30.474, 'max_score': 12287.157, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12287157.jpg'}], 'start': 11731.465, 'title': 'Inserting data with spring boot and spring boot q&a highlights', 'summary': "Covers inserting data into a mysql database using spring boot, including configuring the database, creating a controller, and enabling http support. it also highlights differences between jpa and hibernate, custom endpoints, spring data, auto configuration, deploying web applications, and 'read only' in transaction management.", 'chapters': [{'end': 12031.157, 'start': 11731.465, 'title': 'Insert data into mysql database with spring boot', 'summary': 'Covers the steps to insert data into a mysql database using spring boot, including configuring the database in the application properties, creating a controller to handle http requests, and enabling http support and the differences between @requestmapping and @restcontroller annotations.', 'duration': 299.692, 'highlights': ['The chapter covers the steps to insert data into a MySQL database using Spring Boot It explains the process of configuring the database in the application properties, creating a controller to handle HTTP requests, and enabling HTTP support.', "Configuring the database in the application properties The process involves defining the Spring Boot data source URL, specifying the username and password, and enabling the Spring JPA Hibernate DDL, such as 'spring.datasource.url = jdbc:mysql://localhost', 'spring.datasource.username = root', 'spring.datasource.password = mysql', and 'spring.jpa.hibernate.ddl-auto = create-drop'.", "Creating a controller to handle HTTP requests The chapter explains the steps to create a controller to handle HTTP requests, including importing required annotations, using the @RestController and @RequestMapping annotations, and performing data insertion with an example of inserting 'customer name' into the database and verifying the entry at 'localhost:8080/insert'.", "Enabling HTTP support and differences between @RequestMapping and @RestController annotations It discusses enabling HTTP support in Spring Boot using 'server.http2.enabled=true' and explains the differences between @RequestMapping and @RestController annotations, where @RequestMapping is used for routing information and @RestController is used to add the response body and controller annotation to the class.", "Executing a springboard project using springboard CLI The process involves downloading the CLI tool, creating a groovy file for the Spring Boot application, and executing the groovy file using the command 'spring run '."]}, {'end': 12332.178, 'start': 12031.578, 'title': 'Spring boot q&a highlights', 'summary': "Covers the key differences between jpa and hibernate, creating custom endpoints in spring boot, the purpose of spring data, auto configuration in spring boot, deploying spring boot web applications, and an example of using 'read only' in transaction management.", 'duration': 300.6, 'highlights': ['JPA vs Hibernate: The chapter covers the basic differences between JPA and Hibernate, which is a common question in Springboard interviews. JPA is a data access abstraction to reduce boilerplate code, while Hibernate is an implementation of the Java persistence API offering loose coupling.', 'Custom Endpoint in Spring Boot: The process of creating a custom endpoint in Spring Boot 2.x using the @Endpoint annotation is explained, which exposes endpoints over HTTP with the help of Spring MVC or Jersey. To create a custom endpoint in Spring Boot 2.x, the @Endpoint annotation is used to expose endpoints over HTTP using Spring MVC or Jersey.', 'Spring Data: The purpose of Spring Data in making it easy for developers to use relational and non-relational databases, cloud-based data services, and other data access technologies is discussed. Spring Data aims to make it easy for developers to use relational and non-relational databases, cloud-based data services, and other data access technologies.', 'Auto Configuration in Spring Boot: The concept of auto configuration in Spring Boot, its purpose to automatically configure required configurations for the application, and how to disable it is explained. Auto configuration in Spring Boot automatically configures required configurations for the application and can be disabled using the exclude attribute in the @EnableAutoConfiguration annotation.', 'Differences between @SpringBootApplication and @EnableAutoConfiguration: The differences between the two annotations and their usage in main/bootstrap class and in enabling auto configuration and component scanning are discussed. The @SpringBootApplication annotation is used in the main/bootstrap class and combines @Configuration, @ComponentScan, and @EnableAutoConfiguration. On the other hand, @EnableAutoConfiguration is used to enable auto configuration and component scanning in the project.', 'Deploying Spring Boot Web Applications: The steps to deploy Spring Boot web applications as JAR or WAR files, including adding the Spring Boot Maven plugin and configuring the packaging element in the pom.xml file, are explained. To deploy Spring Boot web applications as JAR or WAR files, the Spring Boot Maven plugin must be added, and the packaging element in the pom.xml file must be set to JAR or WAR based on the desired output.', "Read Only in Transaction Management: An example scenario of using 'read only' as true in transaction management for reading data from a database without checking changes in entities is provided. An example scenario of using 'read only' as true in transaction management is presented for reading data from a database without checking changes in entities."]}], 'duration': 600.713, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s11731465.jpg', 'highlights': ['Covers inserting data into a MySQL database using Spring Boot, including configuring the database, creating a controller, and enabling HTTP support.', 'Configuring the database involves defining the Spring Boot data source URL, specifying the username and password, and enabling the Spring JPA Hibernate DDL.', 'Creating a controller to handle HTTP requests, including importing required annotations, using @RestController and @RequestMapping annotations.', "Enabling HTTP support in Spring Boot using 'server.http2.enabled=true' and explaining the differences between @RequestMapping and @RestController annotations.", "Executing a Spring Boot project using Spring Boot CLI involves downloading the CLI tool, creating a groovy file, and executing the groovy file using 'spring run '.", 'Covers the basic differences between JPA and Hibernate, where JPA is a data access abstraction to reduce boilerplate code, while Hibernate is an implementation of the Java persistence API.', 'Explains the process of creating a custom endpoint in Spring Boot 2.x using the @Endpoint annotation to expose endpoints over HTTP using Spring MVC or Jersey.', 'Discusses the purpose of Spring Data in making it easy for developers to use relational and non-relational databases, cloud-based data services, and other data access technologies.', 'Explains the concept of auto configuration in Spring Boot, its purpose to automatically configure required configurations for the application, and how to disable it.', 'Discusses the differences between @SpringBootApplication and @EnableAutoConfiguration annotations and their usage in main/bootstrap class and in enabling auto configuration and component scanning.', 'Explains the steps to deploy Spring Boot web applications as JAR or WAR files, including adding the Spring Boot Maven plugin and configuring the packaging element in the pom.xml file.', "Provides an example scenario of using 'read only' as true in transaction management for reading data from a database without checking changes in entities."]}, {'end': 13304.991, 'segs': [{'end': 12413.239, 'src': 'embed', 'start': 12382.349, 'weight': 6, 'content': [{'end': 12383.972, 'text': "Now, let's look into the next question.", 'start': 12382.349, 'duration': 1.623}, {'end': 12388.319, 'text': 'That is what is the best way to expose custom application configuration with springboard.', 'start': 12384.012, 'duration': 4.307}, {'end': 12396.069, 'text': 'Now there could be many ways but one way to expose the custom application configuration and springboard is by using the aggregate value annotation.', 'start': 12388.985, 'duration': 7.084}, {'end': 12402.573, 'text': 'The only problem with this annotation is that you know all the configuration values will be distributed throughout the application.', 'start': 12396.429, 'duration': 6.144}, {'end': 12407.576, 'text': 'right now, to avoid this, you can go forward with the centralized approach by centralized approach.', 'start': 12402.573, 'duration': 5.003}, {'end': 12413.239, 'text': 'What I mean by that is that you know you can define a configuration component using the added configuration properties right?', 'start': 12407.596, 'duration': 5.643}], 'summary': 'Best way to expose custom app config with springboard is using aggregate value annotation, but a centralized approach is also recommended.', 'duration': 30.89, 'max_score': 12382.349, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12382349.jpg'}, {'end': 12627.529, 'src': 'embed', 'start': 12596.494, 'weight': 7, 'content': [{'end': 12598.935, 'text': 'That is what do you understand by spring data rest?', 'start': 12596.494, 'duration': 2.441}, {'end': 12602.076, 'text': 'Well, as you know already what spring data is,', 'start': 12599.475, 'duration': 2.601}, {'end': 12607.838, 'text': 'spring data rest is basically used to expose the restful services around spring data repositories right?', 'start': 12602.076, 'duration': 5.762}, {'end': 12611.94, 'text': "For example, let's say, you know, you consider the example that you can see on my screen over here.", 'start': 12607.878, 'duration': 4.062}, {'end': 12616.242, 'text': "I have a repository resource that, let's say, sample and the path to be sample again,", 'start': 12611.96, 'duration': 4.282}, {'end': 12621.304, 'text': 'and then it basically extends the customer repository with sample and then, you know, it has a few data.', 'start': 12616.242, 'duration': 5.062}, {'end': 12623.345, 'text': 'Now to expose it as services.', 'start': 12621.804, 'duration': 1.541}, {'end': 12627.529, 'text': "You basically have to use the HTTP methods and let's say, you know, I use the post method.", 'start': 12623.385, 'duration': 4.144}], 'summary': 'Spring data rest exposes restful services around spring data repositories.', 'duration': 31.035, 'max_score': 12596.494, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12596494.jpg'}, {'end': 12871.5, 'src': 'embed', 'start': 12844.443, 'weight': 0, 'content': [{'end': 12848.285, 'text': "Now, let's say you want to have different application configurations in each of this environment.", 'start': 12844.443, 'duration': 3.842}, {'end': 12853.508, 'text': 'What you can do is you can use profiles to have different application configurations for each of these environments.', 'start': 12848.585, 'duration': 4.923}, {'end': 12855.87, 'text': 'So if you ask me the need of profiles,', 'start': 12854.049, 'duration': 1.821}, {'end': 12868.758, 'text': 'then I would say that in a profile is basically used in spring and springboard in such a way that you know you can determine or you can specify the active profile for a specific environment and the configuration of the various environments can be set for various profiles right?', 'start': 12855.87, 'duration': 12.888}, {'end': 12871.5, 'text': 'So different environments can have different kinds of configurations right?', 'start': 12868.778, 'duration': 2.722}], 'summary': 'Use profiles in spring to have different app configurations for various environments.', 'duration': 27.057, 'max_score': 12844.443, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12844443.jpg'}, {'end': 12939.213, 'src': 'embed', 'start': 12910.194, 'weight': 4, 'content': [{'end': 12912.597, 'text': 'you have to add all the required static contents.', 'start': 12910.194, 'duration': 2.403}, {'end': 12915.161, 'text': "Now, let's move forward with the next question.", 'start': 12913.218, 'duration': 1.943}, {'end': 12918.946, 'text': 'That is how to instruct an auto configuration to back off when a bean exists.', 'start': 12915.221, 'duration': 3.725}, {'end': 12927.293, 'text': 'Now to instruct an auto-configuration class to back off when a bean exists, you have to use the add rate conditional on missing bean annotations,', 'start': 12919.486, 'duration': 7.807}, {'end': 12930.956, 'text': 'and the attributes for this annotation are basically value and name.', 'start': 12927.293, 'duration': 3.663}, {'end': 12936.501, 'text': 'the value basically stores type of the beans to be checked and the name basically stores the names of the beans to be checked.', 'start': 12930.956, 'duration': 5.545}, {'end': 12939.213, 'text': "Now, let's move forward with the next question.", 'start': 12937.333, 'duration': 1.88}], 'summary': 'Instruct auto configuration to back off when a bean exists using @conditionalonmissingbean annotation and its attributes.', 'duration': 29.019, 'max_score': 12910.194, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12910194.jpg'}, {'end': 13016.334, 'src': 'embed', 'start': 12988.442, 'weight': 2, 'content': [{'end': 12995.565, 'text': 'You basically have to add the H2 dependency to the pom.xml file and then you have to restart your server now to add this dependency.', 'start': 12988.442, 'duration': 7.123}, {'end': 13000.927, 'text': 'What you have to do is you have to mention the code that you can see on my screen that is basically again under the dependency tags.', 'start': 12995.605, 'duration': 5.322}, {'end': 13005.549, 'text': 'You have to mention the group ID com.h2 database and the artifact ID.', 'start': 13000.947, 'duration': 4.602}, {'end': 13009.611, 'text': "you have to mention H2 and in the scope you'll mention runtime.", 'start': 13005.549, 'duration': 4.062}, {'end': 13011.172, 'text': 'now talking about the next question.', 'start': 13009.611, 'duration': 1.561}, {'end': 13016.334, 'text': 'That is what is the way to use profiles to configure the environment specific configuration with Spring Boot.', 'start': 13011.212, 'duration': 5.122}], 'summary': 'Add h2 dependency to pom.xml for server and use profiles for environment configuration with spring boot.', 'duration': 27.892, 'max_score': 12988.442, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12988442.jpg'}, {'end': 13121.486, 'src': 'embed', 'start': 13096.493, 'weight': 3, 'content': [{'end': 13104.34, 'text': "Let's move forward with the next question that is mentioned the dependencies needed to start up a JPA application and connect in memory database H2 with Spring Boot.", 'start': 13096.493, 'duration': 7.847}, {'end': 13110.323, 'text': 'Well the dependencies to start a JPA application and connect in memory database with H2 and springboard.', 'start': 13104.841, 'duration': 5.482}, {'end': 13114.884, 'text': 'You basically need three dependencies that is web starter H2 and data JPA starter.', 'start': 13110.343, 'duration': 4.541}, {'end': 13121.486, 'text': 'So to include these dependencies you basically have to include the spring starter projects of all the three that is that you know for web starter.', 'start': 13115.384, 'duration': 6.102}], 'summary': 'To start a jpa application and connect to an in-memory h2 database with spring boot, three dependencies are needed: web starter, h2, and data jpa starter.', 'duration': 24.993, 'max_score': 13096.493, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s13096493.jpg'}, {'end': 13176.49, 'src': 'embed', 'start': 13149.02, 'weight': 1, 'content': [{'end': 13154.783, 'text': 'property in springboard relax binding is applicable to the types of binding of the configuration properties.', 'start': 13149.02, 'duration': 5.763}, {'end': 13155.763, 'text': 'For example,', 'start': 13155.243, 'duration': 0.52}, {'end': 13163.266, 'text': 'if a property in a bean class with the other configuration properties annotation is used sample prop then it can be bounded to any of the properties.', 'start': 13155.763, 'duration': 7.503}, {'end': 13170.488, 'text': 'like you know, sample prop, sample prop in lowercase, sample prop in uppercase, sample hyphen prop and even sample hyphen prop in uppercase.', 'start': 13163.266, 'duration': 7.222}, {'end': 13176.49, 'text': 'So, basically, relaxed binding is basically a way in which the property name does not have to match the key of the environment.', 'start': 13170.928, 'duration': 5.562}], 'summary': 'Relaxed binding in springboard allows flexible property name matching in environment keys.', 'duration': 27.47, 'max_score': 13149.02, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s13149020.jpg'}, {'end': 13262.733, 'src': 'embed', 'start': 13232.919, 'weight': 5, 'content': [{'end': 13235.159, 'text': "now coming to the final question for today's session.", 'start': 13232.919, 'duration': 2.24}, {'end': 13239.501, 'text': 'That is, do you think you can use Jetty instead of Tomcat in spring boot starter web?', 'start': 13235.439, 'duration': 4.062}, {'end': 13240.963, 'text': 'Well, I would say yes.', 'start': 13240.061, 'duration': 0.902}, {'end': 13246.65, 'text': 'we can definitely use Jetty instead of Tomcat in Spring Boot starter web by removing the existing dependencies,', 'start': 13240.963, 'duration': 5.687}, {'end': 13251.998, 'text': 'and then you just have to include the dependency for Spring Boot starter Jetty to exclude the dependencies.', 'start': 13246.65, 'duration': 5.348}, {'end': 13253.36, 'text': 'That is the existing one.', 'start': 13252.038, 'duration': 1.322}, {'end': 13256.404, 'text': 'You have to use the exclusion stack that you can see in my screen.', 'start': 13253.4, 'duration': 3.004}, {'end': 13260.531, 'text': 'With this we come to an end to this full course session on springboard.', 'start': 13257.029, 'duration': 3.502}, {'end': 13262.733, 'text': 'I hope you found this session informative.', 'start': 13260.852, 'duration': 1.881}], 'summary': 'Jetty can be used instead of tomcat in spring boot by including spring boot starter jetty and excluding existing dependencies, as demonstrated in the session.', 'duration': 29.814, 'max_score': 13232.919, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s13232919.jpg'}], 'start': 12332.258, 'title': 'Spring boot configuration and best practices', 'summary': "Covers instructing auto-configuration to back off when a bean exists, reasons why spring data rest is not recommended, resolving errors when h2 is not present, using profiles to configure environment-specific settings, dependencies needed to start up a jpa application, spring boot's support for relaxed binding, and using jetty instead of tomcat in spring boot starter web.", 'chapters': [{'end': 12509.712, 'start': 12332.258, 'title': 'Spring boot deployment and database connection', 'summary': 'Discusses deploying a different server with spring boot, exposing custom application configuration, creating a non-web application, and connecting to an external database like mysql or oracle.', 'duration': 177.454, 'highlights': ['The main steps to deploy a different server in Spring Boot are to generate a war from the project and deploy the war file onto the favorite server, with deployment procedures varying based on the chosen server. To deploy a different server with Spring Boot, the main steps involve generating a war file from the project and deploying it onto the favorite server, with deployment procedures being server-dependent.', 'Exposing custom application configuration with Spring Boot can be achieved by using a centralized approach with the @ConfigurationProperties annotation to define configuration components and avoid distributing configuration values throughout the application. Exposing custom application configuration in Spring Boot involves using a centralized approach with the @ConfigurationProperties annotation to define configuration components and prevent distribution of configuration values throughout the application.', 'Creating a non-web application in Spring Boot entails removing web dependencies from the classpath and altering the way Spring Boot creates the application context. Creating a non-web application in Spring Boot requires removing web dependencies from the classpath and modifying the way Spring Boot creates the application context.', 'To connect an external database like MySQL or Oracle, the steps include adding the dependency for MySQL connector to the pom.xml file, removing the h2 dependency, setting up the MySQL database, configuring the connection, and restarting the project. Connecting to an external database like MySQL or Oracle involves adding the MySQL connector dependency, removing the h2 dependency, setting up the database, configuring the connection, and restarting the project.']}, {'end': 12910.194, 'start': 12510.112, 'title': 'Springboard yaml advantages & hibernate auto configuration', 'summary': 'Discusses the advantages of using yaml over properties files, different ways to load yaml in spring boot, and how hibernate is chosen as the default implementation for jpa without any configuration. it also covers the concept of spring data rest, the difference between request mapping and get mapping, and the need for profiles in spring.', 'duration': 400.082, 'highlights': ['Spring application supports YAML file as an alternative to properties when using the snake YAML library. The snake YAML library is used to support YAML files as an alternative to properties files in Spring applications.', 'The different ways to load a YAML file in Spring Boot include using the YAML Map Factory Bean or YAML Properties Factory Bean. There are two main ways to load a YAML file in Spring Boot: using the YAML Map Factory Bean to load the YAML as a map or using the YAML Properties Factory Bean to load the YAML as properties.', 'When using Spring Boot Auto Configuration, Hibernate is automatically configured as the default implementation for JPA when Hibernate is present in the classpath. Spring Boot Auto Configuration automatically configures Hibernate as the default implementation for JPA when Hibernate is detected in the classpath.', 'Spring Data REST is used to expose RESTful services around Spring Data repositories. Spring Data REST is used to expose RESTful services around Spring Data repositories.', "The 'Get Mapping' annotation is a shortcut for 'Request Mapping' with method equal to request method dot get and both support the 'consumes' options of 'text/plain' and 'application/*'. The 'Get Mapping' annotation is a shortcut for 'Request Mapping' with method equal to request method dot get, and both support the 'consumes' options of 'text/plain' and 'application/*'.", 'The boundary of the transaction should start from the service layer due to the presence of business transaction logic in that layer. The boundary of the transaction should start from the service layer because the logic for the business transaction is present in that layer.', 'Profiles in Spring provide a way to segregate application configurations for different environments. Profiles in Spring provide a way to segregate application configurations for different environments, allowing for different configurations in each environment.', "To add custom JS code with Spring Boot, create a folder called 'static' under the resources folder and place the static content in it. To add custom JS code with Spring Boot, create a folder called 'static' under the resources folder and place the static content in it."]}, {'end': 13304.991, 'start': 12910.194, 'title': 'Spring boot configuration and best practices', 'summary': "Covers how to instruct auto-configuration to back off when a bean exists, reasons why spring data rest is not recommended in real-world applications, resolving errors when h2 is not present in the classpath, using profiles to configure environment-specific settings, dependencies needed to start up a jpa application and connect to an in-memory h2 database, spring boot's support for relaxed binding, and the default h2 database name configured by spring boot. the session also discusses using jetty instead of tomcat in spring boot starter web.", 'duration': 394.797, 'highlights': ['Instructing Auto-Configuration To back off when a bean exists, use @ConditionalOnMissingBean annotation with attributes value and name.', 'Reasons for Not Recommending Spring Data REST Exposing database entities directly as REST services neglects domain model and consumer considerations, making it unsuitable for real-world applications.', "Resolving H2 Classpath Error Adding H2 dependency to the pom.xml file and restarting the server resolves the error 'cannot determine embedded database driver class for database type none'.", "Using Profiles for Environment-Specific Configuration Creating profile-specific property files and setting the active profile in the environment using 'spring.profiles.active' allows customized configuration for different environments.", "Dependencies for JPA Application with H2 Database The dependencies required are 'spring-boot-starter-web', 'com.h2database:h2', and 'spring-boot-starter-data-jpa'.", "Spring Boot's Relaxed Binding Property names do not need to match the key of the environment property, allowing flexible binding of configuration properties.", "Default H2 Database Name Configured by Spring Boot The default H2 database name is 'testdb', specified by 'spring.datasource.name=testdb'.", "Using Jetty in Spring Boot Starter Web Jetty can be used instead of Tomcat by including the 'Spring Boot Starter Jetty' dependency and excluding the existing dependencies."]}], 'duration': 972.733, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/UfOxcrxhC0s/pics/UfOxcrxhC0s12332258.jpg', 'highlights': ['Using profiles to configure environment-specific settings allows customized configuration for different environments.', "Spring Boot's support for relaxed binding allows flexible binding of configuration properties.", 'Resolving errors when H2 is not present involves adding the H2 dependency to the pom.xml file and restarting the server.', "Dependencies needed to start up a JPA application with H2 database are 'spring-boot-starter-web', 'com.h2database:h2', and 'spring-boot-starter-data-jpa'.", 'Instructing auto-configuration to back off when a bean exists is achieved using the @ConditionalOnMissingBean annotation with attributes value and name.', "Using Jetty instead of Tomcat in Spring Boot Starter Web involves including the 'Spring Boot Starter Jetty' dependency and excluding the existing dependencies.", 'Exposing custom application configuration in Spring Boot involves using a centralized approach with the @ConfigurationProperties annotation to define configuration components and prevent distribution of configuration values throughout the application.', 'Spring Data REST is used to expose RESTful services around Spring Data repositories.']}], 'highlights': ['The chapter covers a comprehensive crash course on Spring Boot, including MVC architecture, dependency injection, creating web applications, REST API, securing applications, and top interview questions.', 'Springboard offers rapid application development, good connectivity with web technologies and databases, cloud native support, flexibility, and open-source nature, contributing to high earning potential for Java developers.', 'The process involves downloading Apache Maven and Springboot CLI from their respective official websites.', "The installation of Spring CLI version 2.1.8 is verified using the 'spring --version' command, confirming the successful installation.", 'The process of creating a Spring Boot application, including setting up the project, resolving dependency issues, and configuring the port.', 'Dependency injection enables easy component interaction, application extension, and reduced boilerplate code.', 'The process of creating a web application with Spring Boot involves defining the controller, request URL, and the expected response.', 'Mapping URLs to JSP files using request mapping annotation and configuring prefix and suffix in application properties file.', 'The chapter discusses using model and view in Spring to pass and retrieve data without using HTTP session, highlighting the process of adding an object, setting a view name, and returning a model view object.', "The process involves creating an entity class 'customers' with fields for customer ID, name, and email, and using annotations like @Entity and @Id to automate table creation.", 'The chapter covers principles and methods of REST API, including load balancing, shared caches, and code-on-demand.', "Creating a security configuration class for Spring Security involves annotating with '@EnableWebSecurity', extending 'WebSecurityConfigurerAdapter', and defining secure URL paths and authentication settings.", 'Features of Spring Boot include Spring CLI for writing applications, starter dependency for aggregating common dependencies, spring initializer for project structure creation, auto-configuration, spring actuator for running applications, and logging and security for application security.', 'Covers inserting data into a MySQL database using Spring Boot, including configuring the database, creating a controller, and enabling HTTP support.', 'Using profiles to configure environment-specific settings allows customized configuration for different environments.', "Spring Boot's support for relaxed binding allows flexible binding of configuration properties."]}