
Learn spring framework fundamentals, including dependency injection, inversion of control, and the spring container, then master lifecycle, configuration options, and auto-wiring for building MVC, JDBC, and ORM applications.
Explore how this course is organized with short lectures, quizzes, and hands-on assignments to master the Spring framework end-to-end; set up Java, Tomcat, Eclipse, and MySQL quickly.
Master core Java and Spring development, from JDBC and Servlets to Spring framework, Spring Boot, and Spring Data JPA with Hibernate for full stack web apps.
Install the Java JDK from Oracle, download Eclipse, and configure Eclipse to use the installed JDK by pointing to the JDK directory and selecting the standard VM.
Download and set up Tomcat on your machine by selecting the Apache Tomcat 8 download, unzip the binary, and prepare to configure Tomcat in Eclipse.
Download and set up Tomcat on your machine by visiting the Apache Tomcat 8 software download page, choosing the right binary, unzipping, and configuring Tomcat in Eclipse.
Learn to download, install, and configure MySQL and MySQL Workbench, set a root password, and ensure MySQL runs as a service on Windows and Mac with port 3306.
Launch MySQL Workbench, create and test a new connection to the local MySQL server on port 3306, then open a query window to create database my db.
Download Visual C++ and the MySQL community server for Windows, install required components, choose server only, set root password, and verify MySQL Workbench connectivity.
Install and set up MySQL Workbench on Windows to connect to a MySQL server, open a query window, and create your first database.
Install Postman, a restful client, by downloading the correct version for your OS, launching the app, and using it to test your microservices restful API with various HTTP methods.
Download the completed maven projects from the Udemy resources section, unzip, and compare your code with the spring core sources and pom.xml; import as existing maven projects in Eclipse.
Download the zip file called Spring nodes from the resources section, unzip it, and access theory lecture nodes to quickly revise topics or prepare for interviews.
Download the slides used in the course from the resources section of this lecture; they include keynote for your Mac and dotppts for Windows to quickly review topics.
Spring is a dependency injection framework that enables inversion of control by auto-creating and injecting objects, while simplifying use of JDBC, ORM, MVC, and security and transaction management.
Discover the Spring framework's core container with dependency injection and lifecycle management, the data access module (JDBC, ORM, JMS, transactions), and the web, AOP, and testing modules.
Learn how the spring container creates and manages objects from beans using xml configuration or annotations. Discover application context interface and its implementations, including classpath xml and file system xml.
Explore dependency injection in Spring, learning two types: setter (property) injection and constructor injection, where the Spring container creates and injects address and employee dependencies at runtime.
Define beans in an xml configuration file and enable dependency injection with the spring container. Create bean elements using constructor-arg for constructor injection or property for setter injection.
Explore how the Spring container creates objects and injects dependencies based on data types: primitive type dependencies, collection type dependencies, and reference type dependencies.
Learn to inject primitive type dependencies in the Spring framework using constructor or setter injection, value tags, and P schema attributes to configure a bean.
Create a maven project in eclipse using the quickstart archetype, configure groupId and artifactId, set packaging as jar in pom.xml, and include spring core and spring context for dependency injection.
Create a Java bean in Eclipse for a Maven project, defining an employee pojo with id and name, adding getters and setters, and preparing for Spring dependency injection.
Register a POJO and its dependencies with a Spring XML configuration, define a bean with id and name properties, and enable dependency injection for testing retrieval.
Create a test class with a class path xml application context and provide the complete package structure to avoid dependency injection issues.
Create and run a test that builds the spring container from the classpath using config.xml, fetches the employee bean by name, and prints id and name to verify dependency injection.
Learn how to inject primitive values using value as an element and as a value attribute on the property, simplifying bean configuration and ensuring dependency injection works.
Explore three injection methods in the spring beans: value as element, value as attribute, and the p schema with the p namespace, using p:id and p:name.
Explore how to inject collection types in spring using xml and setter injection: lists, sets, maps, properties configured via list, set, map, and props elements with value, entry, and prop.
Create a hospital POJO with a name and a departments list, configure a Spring bean, and test dependency injection of the list in a test class.
Learn to use the list element in a Spring configuration file to inject a hospital bean's name and its departments via setter and property injection.
Create a test class to demonstrate dependency injection using an xml application context, and retrieve the hospital bean to print its departments.
Run the test to start a spring container, load hospital bean from the classpath, and inject the name Global hospital with a three-element departments list: front office, inpatient, outpatient.
Discover two more list concepts in Spring configuration by creating an empty list. Understand that a single value makes the list optional, with Spring injecting it.
Learn how to create a spring bean for a car dealer, use a set to hold models, configure with set config, and verify injection through a test class.
Master set injection in Spring by removing the set element for a single value and still injecting it; sets disallow duplicates and Spring defaults to a linked hash set.
Create a customer POJO with an id and a map of product ids to product names. Generate getters, setters, and a toString, preparing for Spring bean injection.
Configure a Spring map bean for a customer, define multiple map entry formats in config.xml, create and run a test to display the customer details and map values.
Learn to inject java.util.Properties into a Spring bean using props, with a countries and langs field showing USA English and India Hindi.
Explore injecting reference types in Spring by wiring a has-a relationship where class a depends on class b, using setter, constructor injections, and P schema for bean references.
Create two spring beans, student and scores, to model a use case of reference types. Define a scores class with maths, physics, and chemistry fields and generate getters and setters.
Configure Spring reference types by defining score and student beans in config.xml, inject scores with a ref bean, and verify with a test that prints math, physics, and chemistry.
Learn three ways to inject reference types in spring beans: as an element, as an attribute, and via P schema, with a scores reference injecting a score object into students.
Master setter injection in spring by creating beans, configuring dependencies in XML, and retrieving beans for use. Inject primitive values, collections, and reference types with value, P schema, and ref.
Create a shopping cart and item classes, with item properties id, name, price, and quantity; inject the item into the cart and inject primitive types using pschema into item.
Explore spring bean life cycle methods, focusing on the init method for initialization and the destroy method for cleanup, with public void signatures configured by xml, interfaces, or annotations.
Configure spring bean life cycle with xml by defining init and destroy methods on a patient bean, inject an id, and verify init runs after setters.
Learn how to register a pre shutdown hook in Spring to ensure destroy methods run before container shutdown, by calling context.registerShutdownHook on the abstract application context.
Configure Spring lifecycle methods by implementing InitializingBean and DisposableBean with interfaces, replacing xml config, and ensure after properties set and destroy are invoked during the bean life cycle.
Add the javax.annotation-api maven dependency to enable post, construct, and predestroy annotations in Java 9 and above, since these moved from the JDK. Refresh Maven to activate them.
Learn to configure spring life cycle methods with annotations, enabling init and destroy via post construct and predestroy, and activate annotation support via common annotation bean post processor in config.xml.
Enable annotation support for all spring annotations by configuring the common annotation bean post-processor, or use the context namespace with annotation config to activate annotations like post construct and pre-destroy.
Explore how the Spring container manages object lifecycles with init-method and destroy-method, configured via XML, annotations like @PostConstruct and @PreDestroy, or Spring interfaces, and how to enable annotations via context:annotation-config.
Create a ticket reservation class with initialize and cleanup methods annotated by spring lifecycle annotations, print you are inside each method, and develop a test class with XML configuration.
Create a prescription Spring bean with id, patient name, and medicines; mandate dependency injection and perform a dependency check with the @Required annotation to enforce required fields.
Learn to configure inner beans in Spring by modeling an employee with a nested address, defining classes, and setting properties with P schema.
Practice creating a spring test by wiring an inner bean, using classpath xml application context and config.xml, retrieving an employee bean with an address, and validating bean injection.
Explore spring bean scopes, including singleton and prototype, learn how the spring container manages object creation, and understand request, session, and global session scopes in MVC and portlet contexts.
Demonstrate spring bean scopes in action by comparing singleton and prototype behavior with hash code checks using config.xml.
Use spring's dependency check and @required to ensure dependencies are provided, preventing bean initialization errors; explore inner beans and the five scopes—singleton, prototype, request, session, and global session—in xml configuration.
Create a pojo named university with id, name, and location; enforce id as required via annotation, enable annotation support, and use prototype scope so bean retrieval yields a new instance.
Learn how to implement constructor injection in Spring by configuring beans with constructor-arg, passing primitive values, collections, and references, and mixing p schema, c schema, and property injection.
Learn to create and run a test by loading a Spring context from config.xml, retrieving the employee bean, and printing its details with constructor injection and address setter injection.
Explore constructor injection by using value as element or attribute, and references as tag or attribute, then compact xml using the c schema namespace for Spring.
Explain how the spring container resolves constructor overloads and why string arguments can select wrong constructor. Show how the type attribute on constructor-arg fixes ambiguity by matching int in config.xml.
Learn how to fix an ambiguity in constructor injection by using the index attribute on Addition.java and config.xml to enforce correct argument order.
Discover how the Spring container uses constructor-arg to perform constructor injection, injecting primitives, collections, and objects, and uses type, index, or name attributes to avoid ambiguity.
Learn bean externalization in Spring by reading properties from a file and injecting them into beans via property placeholder configuration using a database.properties example.
Create a pojo and inject the dbServer value from database.properties using constructor injection. Configure context:property-placeholder in the Spring XML and test by printing the dbServer value.
Explore how missing properties or case-insensitive lookups trigger a bean definition store exception in Spring by reading a non-existent placeholder 'dbserver' from configuration and failing tests.
Create a wsclient.properties file with url, userName, and password, configure it in Spring, then build a test class to read and display these properties on the console.
Discover how Spring auto wiring lets the container wire beans, replacing manual ref tags with by type, by name, or constructor injection, and using @Autowired and @Qualifier annotations.
Create a new maven project for the spring auto-wire use case, add spring-core and spring-context in pom.xml, and set java 1.8 compatibility.
Learn how Spring autowiring by type injects the address into the employee via setter injection, and how the Spring container uses config.xml.
Learn how autowiring by type works in Spring: the container injects a matching bean if found, otherwise injects null, and throws an exception when duplicates exist.
Explore autowiring by name in Spring, using the reference variable to match bean names in the config file, and understand nulls and duplicate bean errors.
Learn constructor-based autowiring in Spring by configuring a parameterized constructor, letting the Spring container instantiate dependencies and invoke the Employee constructor to create an object.
Learn autowiring with annotations in Spring by enabling annotation-config, moving to an autowiring.annotations package, and switching to setter injection with @Autowired on the setAddress method.
Use the autowired annotation on fields or constructors to inject dependencies in Spring; you can remove setters, and configure annotation support to mandate contracts or make dependencies optional.
Learn to use the @Qualifier and @Autowired annotations to inject the correct bean by name, resolve NoSuchBeanException cases, and understand optional injection with required=false in Spring.
Learn how the Spring container automatically injects dependencies through autowiring, using XML configuration or annotations. Use byType, byName, or byConstructor in XML, or @Autowired and @Qualifier to resolve multiple beans.
Create a customer POJO with a name and an associated reservation POJO, where the reservation includes an id and time of the customer's reservation, wired into the customer via autowiring.
Learn how standalone collections in Spring use the util schema and namespaces to define reusable lists, maps, and sets that can be injected into multiple beans with collection-class.
Create a standalone collection using the util schema, inject a LinkedList of productNames into a ProductsList POJO and then into another bean via setter injection in config.xml.
The ONLY Course That Covers Spring XML, Annotation-Based Configuration, and Spring Boot Fundamentals!
What Students Are Saying
“I’m Rajesh from Nepal and currently studying Software Engineering in China. I’m really happy with this course. He is the best teacher I’ve ever had. My concepts became very clear, and I understood everything well. Now I can confidently call myself a Java Spring Developer and work on large projects. I have used these skills to develop applications that are running successfully. Thank you so much, sir!”
— Rajesh
“The important thing about configuring Spring is understanding what configuration is required, why it is required, and where to get it—not just copying and pasting. That’s exactly what I liked about this course. The Spring JDBC section especially cleared my confusion about setting up a data source. Again, a really good course.”
— Swapneel Shinde
“I started this course with no prior experience in the Spring Framework. After completing it, I feel very confident. The knowledge can be applied both professionally and personally. The videos are short, concise, and cover exactly what is needed.”
— Ankur Sharma
“Bharath’s classes are excellent and easy to understand. I have taken his Web Services courses before, so I already knew his teaching style, and this course maintains the same high quality.”
— Mohammed Raes
Why Take This Course?
Complete source code available for download
Responsive instructor — questions answered within 24 hours
Professional-quality video and audio recordings
Hands-on examples and real-world projects
Beginner-friendly while also suitable for experienced Java developers
Whether you’re a Java developer looking to learn Spring Boot or an experienced Spring developer wanting to build production-ready Spring Boot applications, this course is designed for you.
Spring is the most widely used Java framework in the industry today. Almost every Java developer job description includes Spring Boot as a required skill. This course teaches both the fundamentals and practical implementation so you can confidently build modern Java applications.
What You’ll Learn
By the end of this course, you’ll be able to:
Understand what Spring Boot is and why it is used.
Create Spring Boot projects using Spring Boot Starters.
Understand the structure of a Spring Boot project and its important files.
Implement Dependency Injection and test your applications.
Perform CRUD operations using Spring Boot and Spring Data JPA with an in-memory database.
Build REST APIs using Spring Web.
Understand how Spring Boot’s auto-configuration works behind the scenes.
Enable and configure Spring Boot Actuator health checks.
Customize application health information.
Work with Spring Boot Profiles for different environments.
Build complete applications through easy-to-follow, hands-on exercises.
You can download all completed projects and compare them with your own work whenever you encounter issues during the practical exercises.
Requirements
Basic Java programming knowledge
Spring Tool Suite (STS) or IntelliJ IDEA / Eclipse
MySQL Database
MySQL Workbench
Don’t worry if you haven’t installed these tools yet—complete installation and setup are covered step by step in the course.