{"id":177,"date":"2020-01-16T12:52:45","date_gmt":"2020-01-16T12:52:45","guid":{"rendered":"https:\/\/www.kindsonthegenius.com\/spring-boot\/?p=177"},"modified":"2020-07-26T08:14:47","modified_gmt":"2020-07-26T08:14:47","slug":"build-a-complete-spring-boot-application-from-the-scratch-step-by-step","status":"publish","type":"post","link":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/","title":{"rendered":"Complete Application with Spring Boot From the Scratch (Step by Step)"},"content":{"rendered":"<p>In this practical tutorial we would build a complete application. A Vehicle Management System. We would start from the scratch, take it step by step until the end.<\/p>\n<p><strong><span style=\"color: #ff0000;\">Note:<\/span> This procedure goes strictly with the video course. See the link below<\/strong><\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/videoseries?list=PL9l1zUfnZkZkmDvzHCoLlc_nHBc7ZXiRO\" width=\"100%\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/p>\n<p><strong>What you will learn:<\/strong><\/p>\n<ul>\n<li>Java Programming<\/li>\n<li>JavaScript programming<\/li>\n<li>Spring Security \u2013 User Login<\/li>\n<li>Spring Data Jpa<\/li>\n<li>Hibernate ORM<\/li>\n<li>MySQL Database \u2013 basic command<\/li>\n<li>Thymeleaf Template Engine<\/li>\n<li>HTML and Basic CSS<\/li>\n<li>Debugging Skills<\/li>\n<li>Bootstrap and JQuery<\/li>\n<li>Source Control using GitHub<\/li>\n<li>Hosting, publishing and marketing our application!<\/li>\n<li>And more!<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>The tools you need:<\/strong><\/p>\n<ul>\n<li>Spring Tool Suit (STS). Get is free here\u00a0<a href=\"https:\/\/spring.io\/tools\">https:\/\/spring.io\/tools<\/a> (download it, unzip it and run the\u00a0SpringToolSuite4.exe file). No installation needed<\/li>\n<li>MySQL Server 5.x. Get it free here\u00a0<a href=\"https:\/\/dev.mysql.com\/downloads\/installer\/\">https:\/\/dev.mysql.com\/downloads\/installer\/<\/a><\/li>\n<li>A computer with good internet connection!<\/li>\n<li>Optionally, Any graphics application (Fireworks, Photoshop, CorelDraw etc)<\/li>\n<li>Firefox or Google Chrome or Internet Explorer<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Step 1:<\/strong> Prepare your tools and assets<\/p>\n<p>(Optional): Prepare a brief paragraph and sketches of what your application is all about.<\/p>\n<p>I&#8217;ll provide you with all the files for the completed project. So you can use it to check if you have any bugs in your code. Download and unzip them from the links below.<\/p>\n<ul>\n<li><a href=\"https:\/\/drive.google.com\/open?id=1Fmy-C4jV1V6eVXLaX00s-yJdzrbhuIv-\">Models<\/a><\/li>\n<li><a href=\"https:\/\/drive.google.com\/open?id=1a6wJzNuo6IztXoDpANFjN0zyCaYyaVrH\">Controller<\/a><\/li>\n<li><a href=\"https:\/\/drive.google.com\/open?id=1jxUIr0rUvW0ghX6e9IGhGVwvF8ZmJ6y1\">Repositories<\/a><\/li>\n<li><a href=\"https:\/\/drive.google.com\/open?id=1Xs1S2YlUImvb9gnpfcZIH2qR_TyHncTa\">Services<\/a><\/li>\n<li><a href=\"https:\/\/drive.google.com\/open?id=1OGKJ4gNlIjyuruSFSb6EV5a2UXMVoVEc\">HTML Files<\/a><\/li>\n<li><a href=\"https:\/\/drive.google.com\/open?id=1YpmI4EZQEmUYTuH4pOhtqfrfn0VfAI3j\">JavaScript Files<\/a><\/li>\n<li><a href=\"https:\/\/drive.google.com\/open?id=1O9NJI75MMmuBaHHDJO8cFCwRK44TyIE_\">Graphics<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Step 2<\/strong>: Set up the project (a SpringBoot project)<\/p>\n<p>Create the project in <a href=\"http:\/\/start.spring.io\">www.start.spring.io<\/a>. Download it and open it in spring boot.<\/p>\n<p>Ensure to add the following dependencies:<\/p>\n<table width=\"100%\">\n<tbody>\n<tr style=\"background-color: #f7f6f3; font-weight: bold;\">\n<td>Dependency<\/td>\n<td>Description<\/td>\n<\/tr>\n<tr>\n<td>lombok<\/td>\n<td>Helps to generate POJO codes<\/td>\n<\/tr>\n<tr>\n<td>mysql-connector-java<\/td>\n<td>Manages connection to MySQL Database<\/td>\n<\/tr>\n<tr>\n<td>spring-boot-starter-web<\/td>\n<td>Functionality for web applications created in Spring Boot<\/td>\n<\/tr>\n<tr>\n<td>spring-boot-starter-data-jpa<\/td>\n<td>Java Persistence API, helps handle data access<\/td>\n<\/tr>\n<tr>\n<td>spring-boot-starter-thymeleaf<\/td>\n<td>Template engine for rendering html pages<\/td>\n<\/tr>\n<tr>\n<td>spring-boot-starter-security<\/td>\n<td>Handles security, for instance user login, authentication and authorization (defer this till 10)<\/td>\n<\/tr>\n<tr>\n<td>thymeleaf-extras-springsecurity5<\/td>\n<td>from org.thymeleaf.extras. Helps you add logged-in username to the html page<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Create the package structure: the controllers, repositories, models and services packages.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 3:\u00a0<\/strong> Configure MySQL database<\/p>\n<p>Open MySQL command line and create a database called fleetdb.<\/p>\n<p>Enter the database parameters in the application.properties file. The database parameters is given below:<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<pre style=\"margin: 0; line-height: 125%;\">spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver\r\nspring.datasource.password=root\r\nspring.datasource.username=root\r\nspring.datasource.url=jdbc:mysql:\/\/localhost:3301\/fleetdb?serverTimezone=UTC\r\nspring.jpa.hibernate.ddl-auto=update\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Step 4<\/strong>: Obtain and Setup the Template<\/p>\n<p>Download the template from <a href=\"https:\/\/bootstrapmade.com\/nice-admin-bootstrap-admin-html-template\/\" target=\"_blank\" rel=\"noopener\">here<\/a>. Then set it up. Adjust the links to make sure it works.<\/p>\n<p>Add the ApplicationController file and write the method that serves in index page.<\/p>\n<p>Test the application to make sure it&#8217;s ok<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 5<\/strong>: Do the Object Oriented Design<\/p>\n<p>Decide the objects that make up your application. Make a brief write-up of what roles they play.<\/p>\n<p>Optionally, draw a relationship diagram.<\/p>\n<p>I have identified the following objects for the Fleet Management System (FLEETMS) application<\/p>\n<table style=\"height: 35px;\" width=\"100%\">\n<tbody>\n<tr>\n<td>1. Auditable *<\/td>\n<td>7. EmployeeType<\/td>\n<td>13. State (Or Region or Province)<\/td>\n<td>19. VehicleMaintenance<\/td>\n<\/tr>\n<tr>\n<td>2. Client<\/td>\n<td>8. Invoice<\/td>\n<td>14. Supplier<\/td>\n<td>20. VehicleMake<\/td>\n<\/tr>\n<tr>\n<td>3. CommonObject *<\/td>\n<td>9. InvoiceStatus<\/td>\n<td>15.User<\/td>\n<td>21. VehicleModel<\/td>\n<\/tr>\n<tr>\n<td>4. Contact<\/td>\n<td>10. JobTitle<\/td>\n<td>16. UserPrincipal (defer till 10)<\/td>\n<td>22. VehicleMovement<\/td>\n<\/tr>\n<tr>\n<td>5. Country<\/td>\n<td>11. Location<\/td>\n<td>17.Vehicle<\/td>\n<td>23. VehicleStatus<\/td>\n<\/tr>\n<tr>\n<td>6. Employee<\/td>\n<td>12. Person *<\/td>\n<td>18. VehicleHire<\/td>\n<td>24. VehicleType<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Now based on these objects, plan the structure of your application.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 6<\/strong>: Create the models<\/p>\n<p>Now you can create the entities you have identified from step 5.<\/p>\n<p>You place the entities in the Models package.<\/p>\n<p>You can find all the Models <a href=\"https:\/\/drive.google.com\/file\/d\/1Nd0ZxnBPGNzSFRee4ve6-j0Ge55V95X1\/view?usp=sharing\" target=\"_blank\" rel=\"noopener\">here (zip file with all the models)<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 7<\/strong>: Create all the Controllers<\/p>\n<p>It may be faster to create on controller and then copy across.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 8<\/strong>: Create all the Services<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 9<\/strong>: Create all the Repositories<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 10:<\/strong> Work on html Pages<\/p>\n<p>First create and test the country.html page. It would be a blank page for now.<\/p>\n<p>Then write the controller method to return this page. Test it.<\/p>\n<p>Now create the link in the home page (index.html) to link to the country.html file. Test it<\/p>\n<p>Create all the other html pages.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 11<\/strong>: Background image to the home page<\/p>\n<p>You can get the <a href=\"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-content\/uploads\/sites\/7\/2020\/01\/bg-11.jpg\" target=\"_blank\" rel=\"noopener\">backgroud image bg-11.jpg from here<\/a>.<\/p>\n<p>Open the index.html page.<\/p>\n<p>Locate the\u00a0panel-body-map div.<\/p>\n<p>Delete it and replace it with this one below (Optional)<br \/>\n<!-- HTML generated using hilite.me --><\/p>\n<pre style=\"margin: 0; line-height: 125%;\"><span style=\"color: #007700;\">&lt;div<\/span> <span style=\"color: #007700;\">&gt;<\/span>\r\n    <span style=\"color: #007700;\">&lt;div<\/span> <span style=\"color: #0000cc;\">style=<\/span><span style=\"background-color: #fff0f0;\">\"background-image: url('img\/bg-1.jpg'); background-size:100% 100%; height:400px;\"<\/span><span style=\"color: #007700;\">&gt;&lt;\/div&gt;<\/span>\r\n<span style=\"color: #007700;\">&lt;\/div&gt;<\/span>\r\n<\/pre>\n<p>Then go ahead to delete the headers of this panel.<\/p>\n<p>Test the app to make sure.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 12<\/strong>: Plan the Navigation<\/p>\n<p>Basically, you need to layout the navigation pattern to ensure that all object can be reached.<\/p>\n<p>Open the index.html file and locate the sidebar.<\/p>\n<p>The redesign the sidebar using the navigation structure given below.<\/p>\n<figure id=\"attachment_181\" aria-describedby=\"caption-attachment-181\" style=\"width: 248px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-181 \" src=\"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-content\/uploads\/sites\/7\/2020\/01\/Navigation-Structure.jpg\" alt=\"Navigation Structure\" width=\"248\" height=\"880\" \/><figcaption id=\"caption-attachment-181\" class=\"wp-caption-text\">Navigation Structure<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 13:<\/strong>\u00a0Display list of Countries in the html page<\/p>\n<p>We start with the Country model.<\/p>\n<p>First complete the country model (Country.java)<\/p>\n<p>Then open the CountryService.java file and write a method to return all the countries<\/p>\n<p>Write the CountryController method to get all the countries (talking about Model.addAttribute());<\/p>\n<p>Then insert a country manually in MySQL. The code for inserting a new country into MySQL database is given below. You can execute it a couple of time to add few records<\/p>\n<pre style=\"margin: 0; line-height: 125%;\"> insert into country values (1, 'Washington', '01', 'North America', 'United States', 'American');\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Then Open the country.html page, adjust the markup to display a list of countries<\/p>\n<p>Test this page to see if it displays the country you inserted in MySQL<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 14:<\/strong> Inserting a New Country<\/p>\n<p>Then open the CountryService.java file and write a method to insert a country<\/p>\n<p>Write the CountryController method to save a new country<\/p>\n<p>Open the html page\u00a0 and add the modal add form and button. Test it<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 15:<\/strong> Updating a Country<\/p>\n<p>Add the update button to the html table in country.html file<\/p>\n<p>Add the edit modal form as well and remember to set the th:action attribute.. Then test it.<\/p>\n<p>Set the th:href attribute to link to the findById() method in the controller<\/p>\n<p>Then open the CountryService.java file and write a method to update a country<\/p>\n<p>Write the CountryController method to update a country<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 16<\/strong>: Deleting a Country<\/p>\n<p>Add the delete button to the table<\/p>\n<p>Then add the delete modal to the page.<\/p>\n<p>Write the javascript code in the country.js file to display the delete modal<\/p>\n<p>You can test it at this point<\/p>\n<p>Write the delete function in the CountryService and CountryController<\/p>\n<p>Write the code to assign the delete url to the &#8220;Yes, Delete&#8221; button<\/p>\n<p>Now test the delete function and make sure a record is deleted.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.kindsonthegenius.com\/spring-boot\/complete-application-part-2-showing-image-thumbnails\/\">Continue to Part 2 &#8211; Showing Images and Thumbnails<\/a><\/p>\n<p>&nbsp;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>In this practical tutorial we would build a complete application. A Vehicle Management System. We would start from the scratch, take it step by step &hellip; <!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":182,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[15,14,16,17,13],"class_list":["post-177","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring-boot-tutorials","tag-bootstrap","tag-complete-spring-boot-application","tag-jquery","tag-mysql","tag-thymeleaf"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Complete Application with Spring Boot From the Scratch (Step by Step) - Learn Spring Boot<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Complete Application with Spring Boot From the Scratch (Step by Step) - Learn Spring Boot\" \/>\n<meta property=\"og:description\" content=\"In this practical tutorial we would build a complete application. A Vehicle Management System. We would start from the scratch, take it step by step &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/\" \/>\n<meta property=\"og:site_name\" content=\"Learn Spring Boot\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-16T12:52:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-26T08:14:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-content\/uploads\/sites\/7\/2020\/01\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1426\" \/>\n\t<meta property=\"og:image:height\" content=\"713\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"kindsonthegenius\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"kindsonthegenius\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/\"},\"author\":{\"name\":\"kindsonthegenius\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/#\\\/schema\\\/person\\\/7f8fc5792578d2ff54003fcebe6c46b5\"},\"headline\":\"Complete Application with Spring Boot From the Scratch (Step by Step)\",\"datePublished\":\"2020-01-16T12:52:45+00:00\",\"dateModified\":\"2020-07-26T08:14:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/\"},\"wordCount\":1032,\"commentCount\":51,\"image\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2020\\\/01\\\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg\",\"keywords\":[\"Bootstrap\",\"Complete Spring Boot Application\",\"JQuery\",\"MySQL\",\"Thymeleaf\"],\"articleSection\":[\"Spring Boot Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/\",\"url\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/\",\"name\":\"Complete Application with Spring Boot From the Scratch (Step by Step) - Learn Spring Boot\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2020\\\/01\\\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg\",\"datePublished\":\"2020-01-16T12:52:45+00:00\",\"dateModified\":\"2020-07-26T08:14:47+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/#\\\/schema\\\/person\\\/7f8fc5792578d2ff54003fcebe6c46b5\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2020\\\/01\\\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg\",\"contentUrl\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/wp-content\\\/uploads\\\/sites\\\/7\\\/2020\\\/01\\\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg\",\"width\":1426,\"height\":713},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Complete Application with Spring Boot From the Scratch (Step by Step)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/#website\",\"url\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/\",\"name\":\"Learn Spring Boot\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/#\\\/schema\\\/person\\\/7f8fc5792578d2ff54003fcebe6c46b5\",\"name\":\"kindsonthegenius\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d710de456c3d85e5614c3a6992fa3d527425e2ab32b8bd5d85bfbaa235004b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d710de456c3d85e5614c3a6992fa3d527425e2ab32b8bd5d85bfbaa235004b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b9d710de456c3d85e5614c3a6992fa3d527425e2ab32b8bd5d85bfbaa235004b?s=96&d=mm&r=g\",\"caption\":\"kindsonthegenius\"},\"url\":\"https:\\\/\\\/www.kindsonthegenius.com\\\/spring-boot\\\/author\\\/kindsonthegenius-3\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Complete Application with Spring Boot From the Scratch (Step by Step) - Learn Spring Boot","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/","og_locale":"en_US","og_type":"article","og_title":"Complete Application with Spring Boot From the Scratch (Step by Step) - Learn Spring Boot","og_description":"In this practical tutorial we would build a complete application. A Vehicle Management System. We would start from the scratch, take it step by step &hellip;","og_url":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/","og_site_name":"Learn Spring Boot","article_published_time":"2020-01-16T12:52:45+00:00","article_modified_time":"2020-07-26T08:14:47+00:00","og_image":[{"width":1426,"height":713,"url":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-content\/uploads\/sites\/7\/2020\/01\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg","type":"image\/jpeg"}],"author":"kindsonthegenius","twitter_card":"summary_large_image","twitter_misc":{"Written by":"kindsonthegenius","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/#article","isPartOf":{"@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/"},"author":{"name":"kindsonthegenius","@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/#\/schema\/person\/7f8fc5792578d2ff54003fcebe6c46b5"},"headline":"Complete Application with Spring Boot From the Scratch (Step by Step)","datePublished":"2020-01-16T12:52:45+00:00","dateModified":"2020-07-26T08:14:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/"},"wordCount":1032,"commentCount":51,"image":{"@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-content\/uploads\/sites\/7\/2020\/01\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg","keywords":["Bootstrap","Complete Spring Boot Application","JQuery","MySQL","Thymeleaf"],"articleSection":["Spring Boot Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/","url":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/","name":"Complete Application with Spring Boot From the Scratch (Step by Step) - Learn Spring Boot","isPartOf":{"@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/#primaryimage"},"image":{"@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-content\/uploads\/sites\/7\/2020\/01\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg","datePublished":"2020-01-16T12:52:45+00:00","dateModified":"2020-07-26T08:14:47+00:00","author":{"@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/#\/schema\/person\/7f8fc5792578d2ff54003fcebe6c46b5"},"breadcrumb":{"@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/#primaryimage","url":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-content\/uploads\/sites\/7\/2020\/01\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg","contentUrl":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-content\/uploads\/sites\/7\/2020\/01\/Build-a-Complete-Spring-Boot-Application-Step-by-Step.jpg","width":1426,"height":713},{"@type":"BreadcrumbList","@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/build-a-complete-spring-boot-application-from-the-scratch-step-by-step\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kindsonthegenius.com\/spring-boot\/"},{"@type":"ListItem","position":2,"name":"Complete Application with Spring Boot From the Scratch (Step by Step)"}]},{"@type":"WebSite","@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/#website","url":"https:\/\/www.kindsonthegenius.com\/spring-boot\/","name":"Learn Spring Boot","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kindsonthegenius.com\/spring-boot\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.kindsonthegenius.com\/spring-boot\/#\/schema\/person\/7f8fc5792578d2ff54003fcebe6c46b5","name":"kindsonthegenius","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b9d710de456c3d85e5614c3a6992fa3d527425e2ab32b8bd5d85bfbaa235004b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b9d710de456c3d85e5614c3a6992fa3d527425e2ab32b8bd5d85bfbaa235004b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b9d710de456c3d85e5614c3a6992fa3d527425e2ab32b8bd5d85bfbaa235004b?s=96&d=mm&r=g","caption":"kindsonthegenius"},"url":"https:\/\/www.kindsonthegenius.com\/spring-boot\/author\/kindsonthegenius-3\/"}]}},"_links":{"self":[{"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/posts\/177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/comments?post=177"}],"version-history":[{"count":21,"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/posts\/177\/revisions"}],"predecessor-version":[{"id":242,"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/posts\/177\/revisions\/242"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/media\/182"}],"wp:attachment":[{"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/media?parent=177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/categories?post=177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/tags?post=177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}