
Explore Spring Framework and Spring Boot in a bootcamp that covers Spring Core, Spring Data JPA, Spring REST, Spring MVC, Spring Security, testing, actuator, dev tools, and full-stack library project.
Download and install JDK 11 on Windows by locating the Oracle JDK page, downloading the setup exe, choosing or confirming the installation path, and completing the installation.
Download and install IntelliJ IDEA 2022 on Windows, choose the free Community Edition, configure the destination and desktop shortcut, and start programming after setup.
Download and install the Spring Tool Suite IDE on Windows, selecting the eclipse version, launching the installer, and confirming the workspace path to get STS ready to use.
Learn how Apache Maven, a building tool, handles dependency management, jar downloads, and project building and profiling, and explore environment-specific configurations for staging or production.
Learn how to download and install Apache Maven on Windows, set the Maven home and path environment variables, and verify the installation with mvn -version.
Explore the Spring framework overview, an open source infrastructure that enables Java applications with POJOs, security, loose coupling, and ready templates like Hibernate and JDBC.
Explore the history of the Spring framework from its 2003 launch to Spring 6.0 in 2022. See how Spring reduces J2EE complexity with controllers and persistence across layers.
Explore spring framework architecture and data access integration with jdbc, orm, oxm, jms, and transactions. See how the core container enables dependency injection, web components, and testing across the application.
Discover how inversion of control and dependency injection manage object lifecycles in the Spring Framework, enabling loose coupling and modular, testable code.
Explore the inversion of control containers in Spring: bean factory and application context; learn lazy loading, bean management, and how application context adds events, configuration metadata, and internationalization support.
Explore how to define and create Spring beans using XML configuration, Java annotations, and Java source code, and learn bean retrieval from the Spring container via application context.
Explore spring bean scope and lifecycle, covering singleton, prototype, request, session, application, and socket scopes, and how the container creates, initializes, and destroys beans with init and destroy methods.
Discover how the Spring container injects beans to achieve loose coupling, using constructor- and setter-based dependency injection, with XML configuration and interfaces demonstrating language services.
Demonstrate dependency injection in Spring Framework with a practical example, creating a message service, implementing email service, wiring beans via application context, and using constructor injection.
Autowiring in Spring reduces boilerplate by automatically injecting dependencies via by name, by type, by constructor, or auto-detect modes, while highlighting limitations like overriding and primitive types.
Explore Spring auto-wiring through a practical example using Email and Twitter services. Learn default, by name, by type, and constructor-based auto-wiring, including handling multiple beans and dependency injection.
Learn how Spring Framework modules enable Java web applications and how Spring Boot accelerates development, with a look at Spring Boot 2 and 3 and Spring MVC comparisons.
Explore how the Spring Framework provides Java infrastructure, enables dependency injection, and offers data access, web, and testing modules, leading to a core container and the later Spring Boot.
Explore spring boot, which builds on the spring framework and uses auto-configuration and starters to simplify web app development with embedded servers and easy deployment.
Explore how Spring Boot simplifies building Java web apps with flexible configuration like Java beans or XML, annotation-driven setup, auto-configuration, and dependency management via starters and an embedded servlet container.
Discover the evolution of spring and spring boot, highlighting key versions from spring 1.0 in 2004 through spring boot 3 in 2022.
Explore spring boot 2 and 3 features, including embedded servers, starters, and auto configuration. Understand actuator for observability and jakarta ee 9/10 packages, java 17, and graalvm native images.
Compare spring boot and spring mvc, outlining spring boot's zero or minimal configuration, standalone deployment, and automatic configuration, against spring mvc's manual configuration, deployment descriptor, and mvc-based web development.
Build your first spring boot web app with the spring initializer and deploy it via IntelliJ or the command line, then package it as a war with the servlet initializer.
Learn to create your first Spring Boot application using Spring Initializr, configure versions and tools, add dependencies like Spring Web, and generate the project for download.
Create a spring boot app with spring initializer, selecting maven, java, and spring boot 2.7.7, setting group com.example and artifact spring-boot-hello-word-example, packaging as jar, java 8, and web dependency.
Deploy a Spring Boot application using the command line with java -jar and IntelliJ run configurations, then observe a hello world start and prepare for a rest controller.
Create your first spring boot web service that returns hello world, then deploy it with IntelliJ IDE and the command prompt and run the jar on port 8080.
Use the Spring Boot servlet initializer to deploy a Spring Boot app as a war in external container, overriding configure to register app as a configuration and bind the servlet.
Explore the Spring Boot project structure and the Spring Boot application annotation. Review the main structures, recall essential annotations, and learn about the Spring Boot application.
Explore Spring Boot project structure by feature versus by layer, compare functional and technical packages with customer and order examples, and learn why feature structure speeds changes.
Explore Spring core annotations such as component scan, @Autowired, and @Bean. Learn how the Spring Boot application annotation combines configuration, auto-configuration, and default package handling.
Explore spring boot runners and the main runner interfaces, learn what runners are, and compare the two types—application runner and command line runner.
Explore spring boot runners, including application runner and command line runner, and learn how code runs after app startup via the run method, plus the differences in their argument types.
Learn to use spring boot runners, implementing command line runner and application runner to print and handle arguments with java 8 streams, and observe tomcat started on port 8080.
Explore how Spring Boot externalizes configuration with application properties, connect to Postgres, adjust the Tomcat port, create custom properties, and use the failure analyzer to diagnose exceptions.
Define and externalize a Spring Boot application's name using properties, YAML, environment variables, or command line arguments, with environment-specific files and default fallbacks.
Configure a Postgres connection in a Spring Boot app via application.properties, adding spring data source url, username, and password, setting the dialect and ddl-auto to update.
Configure tomcat port numbers via application properties by setting server.port to 8080 or 8081, then generate a random port with 0 to run multiple instances without conflicts.
Create custom properties in spring boot by using @ConfigurationProperties and @EnableConfigurationProperties to bind a mail prefix to a POJO and read values in the main application.
Create a config properties class, enable configuration properties, inject it into the main class, and read mail.from, mail.to, and mail.default-object from application properties.
Learn how to use Spring Boot failure analyzer to intercept startup exceptions, replace stack traces with descriptive messages and proposed resolutions, and customize it with a URL access exception example.
Create a custom failure analyzer in Spring Boot to detect an inaccessible URL and throw a URL access exception, register it via spring.factories, and test by triggering on context refresh.
Explore the jpa specification for managing relational data in java applications and learn how it helps map java objects to tables and handle no sql databases with orm and jpql.
Discover how JPA maps Java classes to database tables and uses a persistence unit to obtain an entity manager factory, entity managers, and transactions, with queries via the query interface.
Explore JPA implementations like Hibernate and EclipseLink, following JPA standards to manage relational databases and NoSQL extensions, and learn how the entity manager, entity manager factory, and transactions support them.
Master Spring Data’s repositories and object mapping to reduce boilerplate. Derive queries from method names, enable auditing, and extend with custom repositories.
Learn spring data jpa and its repository pattern for relational databases, enabling CRUD and paging, with entity mapping via jpa annotations and spring boot auto configuration.
Introduction to Spring Boot :
Spring Boot is an open source Java-based framework used to create a micro Service. It is developed by Pivotal Team and is used to build stand-alone and production ready spring applications. This chapter will give you an introduction to Spring Boot and familiarizes you with its basic concepts.
Spring Boot Advantages :
Easy to understand and develop spring applications
Increases productivity
Reduces the development time
Course Objectives :
Understanding Spring Framework.
Understanding Spring Core.
Understanding Spring 5 vs Spring 6.
Understanding Spring AOP (Aspect Oriented Project).
Understanding Spring Boot.
Understanding Spring Boot Features :
A- Spring Boot main Features.
B- Spring Boot Starters.
C- Spring Boot DevTools.
D- Spring Boot Runners.
E- Spring Boot Actuator.
Understanding Spring Boot with Spring Data JPA.
Understanding Spring Boot with Spring MVC (Thymeleaf).
Understanding Spring Boot with Spring Security.
Understanding Spring Boot with Spring Rest APIs.
Understanding Spring Boot with Spring Testing (JUnit).
Developing Role-Based Full-Stack Application using (Spring Boot, Spring Data JPA, Spring Security, Spring Rest APIs, Spring Testing, Postgres DB).
Understanding Spring Boot 3.
Understanding Spring Boot 2.7 vs Spring Boot 3.
Understanding How to Migrate from Spring Boot 2.7 to Spring Boot 3.
Migrate Library-Management-System from Spring Boot 2.7 to Spring Boot 3.