Join Here To get Spring Boot Classnotes and Videos : https://classroom.google.com/c/NzUyNTUzOTU3ODIy?cjc=rvcy6m5l ============================= Spring Boot & Microservices ============================= 1) Your trainer 2) Pre-requisites 3) Who should join 4) Course Content (Road map) 5) Course Details 6) Q & A ======== Trainer ======== Name: Mr. Ashok 11+ Yrs exp in IT Product Based in Hyd (Project Manager) 8+ Yrs exp in Software Trainings Skills : Java + J2EE + SpringBoot + Microservices Angular LINUX + AWS + DevOps started Ashok IT - 2020 ================ Pre-requisites ================ 1) Core Java - Logical Programming - OOPS - Collections - Exception Handling - IO Streams - Multi Threading - Java 8 Features 2) Adv. Java - JDBC - Servlets - WebServer - MVC - JSP (Not required) 3) Database (SQL) 4) Web Development (HTML & CSS) ================================== Who should join for this course ? ================================== => Without asking "springboot and microservices quesions" java interview will not be completed => If you don't mention "springboot and microservices" in resume, company will not consider your profile for interview. - Fresher - Exp Developers - Career Gap students Note: To get job as a java developer and to surive in IT industry as a java developer "SpringBoot + Microservices" knowledge is mandatory. ================= Course Content ================= ### Download Syllabus PDF : https://ashokit.in/courses/springboot_microservices_online_training Module-1 : Spring Framework (Core Module) Module-2 : SpringBoot Module-3 : Spring Data JPA (extension for Hibernate) Module-4 : Spring Web MVC (C2B) Module-5 : Spring REST (RESTFul Services) Module-6 : Spring Cloud Module-7 : Microservices Module-8 : Spring Security Module-9 : Spring Batch + Spring Scheduling Module-10 : Real-Time Tools (weekend workshops) - logging - junit - kafka - redis - docker - swagger - postman Complimentary Courses : Mongo DB @7:00 PM + AWS Cloud @9:30 AM (Free Batches) Note: After attending this you can keep 3 to 4 years of Exp in Spring Boot and Microservices ================ Course Details ================ Course : Spring Boot with Cloud & Microservices Course Code : 63-SBMS Class Timings : 7:00 AM - 8:15 AM (IST) Class Frequency : Mon to Sat Course Duration : 3 Months => Every day softcopy notes will be shared Course Fee : 8,000 INR (live classes + soft copy notes) For Backup Videos : 2,000 INR (1 year validity) =================================== Benefits of attending this course =================================== 1) Daily live classes 2) Topic Wise FAQ's 3) Mock Interviews 4) Resume Building 5) Placement Assistance (based on mock interview rating) 6) Community Support =================== Day - 02 (21-March-2025) ==================== 1) Core Java 2) Adv. Java 3) Java Frameworks (Ex: Hibernate, Spring, SpringBoot....) ========== Core Java ========== => Core java means JSE => Core Java is base to become java developer => In core java fundamentals of java language will be available - data types - variables - arrays - strings - oops - collections - exceptions - threads - lambdas - stream api - io ops - generics - annotations -> Using core java we can develop standalone apps (CLI and GUI apps) Ex: calc, notepad, eclipse, intellij idea.... ================ Adv Java (JEE) ================ JEE : Java Enterprise Edition => JEE is developed based on JSE only - JDBC - SERVLETS - JSP => Using this JEE we can develop web applications (multiple users can access at a time thru internet) Ex: gmail, facebook, naukri, youtube => To run a web application server is required Ex : Tomcat, Jetty, Netty, WebSpehere, WebLogic... Note : To develop one application using JDBC and Servlets we need to write so many lines of code. Ex : 6 lines of code required to perform one DB operation product_tbl : CRUD Operations For CRUD Operations : 4 Methods required (create, retrieve, update, delete) For Each method => we need to write 6 lines of code For one table => 4 methods * 6 lines => 24 lines of code to perform DB operations Note : we have 2000 tables in our project : 2000 * 24 => 48,000 lines of code only for DB operations (lot of duplicate code we have to write). Note: In every JDBC method only query will be different remaining all are same. What about business logic and presentation logic => If we use Adv Java concepts to develop a project then we should write so many lines of code which takes more time for development, more time for testing and there is a chance of getting more bugs also. => To avoid these problems Frameworks came into picture. ================= Java Frameworks ================= => Framework is a semi developed software. => Frameworks are providing common logics for software application development. ex : get db conn create stmt execute query process result close conn form validations capture form data => If we use frameworks then we can focus only on business logics development. => Using frameworks we can do more work in less time (productivity) => We have several frameworks in java community 1) JSF (outdated) 2) Struts (outdated) 3) Hibernate ----> Data JPA (trending) 4) Spring ----> Spring Boot (trending) Note: The above frameworks developed by using JSE and JEE. =================== Day - 03 (24-March-2025) ==================== ================== What is Hibernate ================== => Hibernate is an ORM Framework => ORM means Object Relational Mapping => Using Hibernate we can develop persistence layer => Persistence layer is used communicate with databases => Hibernate framework developed on top of JDBC Note: Our application will communicate with Hibernate then hibnerate will use JDBC internally to connect with database. ================== What is Struts ================== => Struts framework developed by Apache org => Struts framework is used to develop only Web Layer in the application. ================== What is Spring ================== => Spring is free & open source => Using spring we can develop entire application. => Spring is called as "application development framework" => Spring framework provides common logics required for application development. => The author of spring framework is "Rod Johnson" => Now spring framework is under license of VMWare company. => First version of spring released in the year of 2004. => The current version of spring is 6.x version ############# Note: SpringBoot is an extension for Spring Framework. ################ => Spring Framework developed in modular fashion 1) Spring Core 2) Spring Context 3) Spring AOP 4) Spring DAO / JDBC 5) Spring ORM 6) Spring Data 7) Spring Web MVC 8) Spring REST 9) Spring Security 10) Spring Cloud 11) Spring Batch => Spring Framework is loosely coupled. Note: It is not mandatory to use all modules of spring framework in one project. => Based on project requirement we can use any module available in the spring framework. =================== Day - 04 (25-March-2025) ==================== ===================== Spring Core Module ==================== => It is base module of spring framework eco system. => Spring core is providing fundamental concepts of spring framework 1) IOC Container 2) Dependency Injection 3) Auto wiring ===================== Spring Context Module ===================== => It provides configuration support for spring application development. => Configurations we can do in multiple ways 1) xml 2) java based 3) Annotations (trending) ============ Spring AOP ============ => AOP stands for Aspect Oriented Programming. => AOP is used to seperate cross-cutting logics of our application Ex: security, tx, logging, auditing.... => We can make primary logics (business logics) and secondary logics (helpers) loosely coupled using AOP. ========================= Spring JDBC / DAO module ========================= => It is used to simplify Database connectivity in java applications. Note: In Java JDBC, we should write so many lines of boiler plate code to perform DB operations in the project. // load driver // get conn // create stmt // execute query // close conn => Spring JDBC provided predefined classes to execute SQL queries directley. JdbcTemplate.execute(query); ============= Spring ORM ============= => ORM means Object Relational Mapping. => ORM is used to map Java Objects with Relational Database tables. Class ---------> Table variables ------> Columns in Table Object ----------> Row in the table => It is used to simplify Persistence layer development with ORM principles. => We can represent DB table data in the form of objects. => Spring ORM provided predefined methods to perform curd operations using objects. Note: Spring ORM internally using Hibernate and Hibernate internally uses JDBC api. App ------> Spring ORM -----> Hibernate ------> JDBC -----> Database ================ Spring WEB MVC ================ => It is used to develop web applications ( C 2 B). Note: If we develop a web application using servlets, we need to lot of boiler plate code like 1) capture form fields data (req.getParameter('key')) 2) validate form data and 3) convert form fields data into object => We can avoid boiler plate code in web app development using Spring Web MVC Module. Note: Spring Web MVC module internally uses Servlet API. Our App ------> Spring Web MVC -----> Servlets API =================== Spring REST Module =================== => It is used to develop distributed applications ( B 2 B) Passport App <----------> AADHAR app MakeMyTrip <----------> IRCTC App Gpay <-----------------> Banking app Note : If one app is communicating with another app then it is called as Distributed application. =================== Day - 05 (26-March-2025) ==================== ============== Spring Cloud ============== => It is used to develop Microservices based applications. => It provides several services required for microservices management 1) Eureka Server 2) Config Server 3) API Gateway 4) Feign Client 5) Ribbon (Load Balancing) ================== Spring Security ================== => It is used to implement security logics in our applications. => By using Spring Security module we can implement Authentication and Authorization. Authentication => who can login into our application Authorization => logged in user can access which funtionality ============= Spring Batch ============= => Spring Batch module is used to implement bulk operations in our applications. 1) generate bank acc stmt and send to customers emails 2) generate credit card bill stmts and send to customers emails 3) Generate insurance plan renewal notices to all customers 4) Read data from excel file + process it + store into database =================== Day - 06 (27-March-2025) ==================== => Application can be developed in 2 ways 1) Monolithic (outdated) 2) Microservices (trending) ============ Monolithic ============ => Developing all the functionalities in single project. => We have below challenges in monolithic 1) Maintenance Difficult 2) Single point of failure 3) Re-Deploy entire app 4) Technology dependent => To overcome problems of monolith, we are using microservices architecture. ================= Microservices ================= => Microservices is an Architectural Design Pattern. => Microservices is an approach to develop application functionalities with loosely coupling. => Application functionalities will be developed in multiple services/apis. => Every microservice will run in seperate server. => Every microservice is independently deployable and executable. => We have below advantages with microservices 1) Functionality distributed 2) Loosely coupled 3) No single point of failure 4) Technology independent ========================================================== What we need to learn to develop Microservices based app ========================================================== 1) Spring Core IOC & DI 2) Spring Boot & Auto Configuration 3) Data JPA for DB communication 4) REST APIs development using SpringBoot 5) Spring Cloud with Microservices Development 6) Spring Security authentication & authorization 7) Intergrations (kafka, redis) 8) Tools (maven, logging, junit, docker, swagger, postman) ========== Summary ========== 1) SBMS Overview 2) Core Java vs Adv. Java 3) What is Framework & Why 4) Java Related Frameworks 5) Hibernate vs Struts vs Spring 6) Spring Introduction 7) Spring Modules Overview 8) Monolithic vs Microservices