Spring Tutorial For Beginners
# Spring Tutorial for Beginners - with Examples - in28Minutes

## Video Tutorials
 - YouTube
   - Spring Tutorial For Beginners - using Maven and Eclipse : https://www.youtube.com/watch?v=24rGqtxuLhc
   - Spring Dependency Injection - with Unit Testing : https://www.youtube.com/watch?v=bc7frTK8LhI
   - Spring AOP Tutorial - with Aspectj Examples : https://www.youtube.com/watch?v=Og9Fyew8ltQ
   - Spring JDBC Tutorial  - with Examples : https://www.youtube.com/watch?v=1WgsDP10iqw
 - Udemy
   - Complete Course on Udemy : https://www.udemy.com/course/spring-tutorial-for-beginners/

## TOC
- [Running Examples](#running-examples)
	- [Video Tutorials](#video-tutorials)
	- [Installing Java Eclipse and Maven](#installing-java-eclipse-and-maven)
	- [Spring Tutorial - Complete Presentation](#spring-tutorial---complete-presentation)
	- [Spring Tutorial - Complete Code](#spring-tutorial---complete-code)
	- [TOC](#toc)
		- [Section 1 Introduction](#section-1-introduction)
		- [Section 2  Why is Spring Popular?](#section-2--why-is-spring-popular)
		- [Section 3  First Example](#section-3-first-example)
		- [Section 4  Basic Concepts](#section-4-basic-concepts)
		- [Section 5 Real world Example](#section-5-real-world-example)
		- [Section 6  Advanced Concepts](#section-6-advanced-concepts)
		- [Section 7  Spring Modules](#section-7--spring-modules)
		- [Section 8 Spring in Real World](#section-8-spring-in-real-world)
		- [Section 9 Let's meet again](#section-9-lets-meet-again)
* [About in28Minutes](#about-in28minutes)
  - [Our Beliefs](#our-beliefs)
  - [Our Approach](#our-approach)
  - [Find Us](#useful-links)
  - [Other Courses](#other-courses)


## Running Examples
https://youtu.be/0dINCMLIyHo

## Installing Java Eclipse and Maven
https://github.com/in28minutes/SpringIn28Minutes/blob/master/InstallationGuide-JavaEclipseAndMaven_v2.pdf

## Spring Tutorial - Complete Presentation
https://github.com/in28minutes/SpringIn28Minutes/blob/master/Spring%20Tutorial%20For%20Beginners%20with%20Examples_v2.pdf

## Spring Tutorial - Complete Code
https://github.com/in28minutes/SpringIn28Minutes

## TOC

### Section 1 Introduction
- Introduction to the Course

Spring reduces the complexity of enterprise java applications. Incredibly modular architecture of spring helps in picking and choosing the right spring modules to use to suit our needs. Spring reduces the cost of programming to interfaces to almost zero.

### Section 2  Why is Spring Popular?

We love looking at the big picture. Before we start with getting into technical details and getting our hands dirty, lets look at few of the things Spring helps with. 

Spring is one of the first layer independent frameworks.

The things discussed here are dependent on one another. Unit Testing builds up Loose Coupling. Architecture Flexibility is a result of Spring Modules.

- Dependency Injection
- Loose Coupling
- Spring Modules
- Architectural Flexibility - Great integration with other frameworks and helps us pick and choose the right ones.
- Unit Testing

### Section 3  First Example
- Basic Example
- Clean up 

### Section 4  Basic Concepts
- Component
- Service
- Component Scan
- Autowiring

### Section 5 Real world Example 
- Advanced Example
- Clean up

### Section 6  Advanced Concepts
- Application Context
- Bean Factory
- Bean Scope
- Constructor Setter Injection
- Debugging 

### Section 7  Spring Modules
- MVC
- JDBC
- AOP
- Test
- XML

## Spring MVC

### Steps 1 to 7 - Build a normal Web Application
- Understand Basics of HTTP 
- HttpRequest - GET/POST, Request Parameters
- HTTP Response - Response Status - 404,200,500 etc
- Introduction to JSP, Servlets,  Scriptlets and EL
- HTML Form -  Method, Action & Form Data
- Understand Basics of using Maven, Tomcat and Eclipse
- Using Request Attributes for passing Model between Servlet and View

### Steps 11 to 17 : Use Spring MVC to Build Your First Web Application
- Step 11 : Configure application to use Spring MVC
- Step 12 : First Spring MVC Controller, @ResponseBody, @Controller
- Step 13 : Redirect to Login JSP - LoginController, @ResponseBody and View Resolver
- Step 14 : DispatcherServlet and Log4j
- Step 15 : Show userid and password on the welcome page - ModelMap and @RequestParam 
- Step 16 : LoginService and Remove all JEE Servlets based code
- Step 17 : Spring Auto-wiring and Dependency Management - @Autowired and @Service

## About in28Minutes
- At in28Minutes, we ask ourselves one question everyday. How do we create more effective trainings?
- We use Problem-Solution based Step-By-Step Hands-on Approach With Practical, Real World Application Examples. 
- Our success on Udemy and Youtube (2 Million Views & 12K Subscribers) speaks volumes about the success of our approach.
- While our primary expertise is on Development, Design & Architecture Java & Related Frameworks (Spring, Struts, Hibernate) we are expanding into the front-end world (Bootstrap, JQuery, Angular JS). 

### Our Beliefs
- Best Course are interactive and fun.
- Foundations for building high quality applications are best laid down while learning.

### Our Approach
- Problem Solution based Step by Step Hands-on Learning
- Practical, Real World Application Examples.
- We use 80-20 Rule. We discuss 20% things used 80% of time in depth. We touch upon other things briefly equipping you with enough knowledge to find out more on your own. 
- We will be developing a demo application in the course, which could be reused in your projects, saving hours of your effort.
- All the code is available on Github, for most steps.

## About in28Minutes

At in28Minutes, we ask ourselves one question everyday
> How do we create more amazing course experiences? 
> We use 80-20 Rule. We discuss 20% things used 80% of time in depth.

We are creating amazing learning experiences for learning Spring Boot with AWS, Azure, GCP, Docker, Kubernetes and Full Stack. 300,000 Learners rely on our expertise.  [Find out more.... ](https://github.com/in28minutes/learn#best-selling-courses)

![in28MinutesLearningRoadmap-July2019.png](https://github.com/in28minutes/in28Minutes-Course-Roadmap/raw/master/in28MinutesLearningRoadmap-July2019.png)
