Spring Framework
Tutorial
Learncodewith Durgesh
Content
Spring Data
Spring Core Spring WEB
Integration
Spring Other Important Modules
Learncodewith Durgesh
Prerequisite of course
Servlet &
Core java JDBC
JSP
Important Web and Database related terms
Learncodewith Durgesh
Why Learncodewith Durgesh
1. To the point content.
2. Clear explanation with practical approach
3. Ask your doubt in comment section or
Instagram(@Durgesh_k_t)
4. Industry approach
5. Source code of every practical video is available to
website.
6. Much more benefits from this channel
Learncodewith Durgesh
Support us
1. Subscribe to my channel(Learncodewith Durgesh)
2. Follow on Instagram(@Durgesh_k_t)
3. Follow on facebook (@learncodewithdurgesh)
4. If you want to help me just donate some money follow
the link
https://courses.onlyjavatech.com/about
Learncodewith Durgesh
What is Spring?
Learncodewith Durgesh
What is Spring?
Spring is a Dependency Injection framework to
make java application loosely coupled.
Spring framework makes the easy development of
JavaEE application.
It was developed by Rod Johnson in 2003
Learncodewith Durgesh
Dependency Injection
It is design pattern
class Ramu class Geeta
{ {
Geeta ob;
public void doWork()
{
public void doWork()
{ }
}
}
}
Inversion Of Control (IOC) Learncodewith Durgesh
Spring and JEE
Strut / JSF
Spring MVC UI Layer ProductController
Security
Business/Services ProductService
Transaction Layer
Management
inject
Spring JDBC Data Access Layer ProductDao
Spring ORM
DB
Learncodewith Durgesh
Spring Modules
Learncodewith Durgesh
Spring Modules
Access/Integration
JDBC ORM Web Servlet
Data
Web
JMS OXM Portlet WebSocket
Spring Framework
AOP Aspect Instrumentation Messaging
Spring Core
Core beans Context spEL
Test
Learncodewith Durgesh
Spring IoC Container
Learncodewith Durgesh
Spring IoC Container
Beans
Application
Code
Config
Learncodewith Durgesh
ApplicationContext
ClasspathXMLApplicationContext
AnnotationConfigApplicationContext
FileSystemXMLApplicationContext
Learncodewith Durgesh
Dependency Injection
Learncodewith Durgesh
Dependency Injection
class Student
{ class Address
{
int id; String street;
String name; String city;
Address address; String state;
String country;
} }
Learncodewith Durgesh
Dependency Injection
Can be done in 2 ways
Using Setter Injection
Using Constructor Injection
Learncodewith Durgesh
Setter Injection
class Student
{
id,name,address class Address
{
setId(id){ } street,city,state,country
setStreet(street)
setName(name){ } setCity(city)
setState(state)
setAddress(address){ }
setCountry(country)
} }
Learncodewith Durgesh
Constructor Injection
class Student
{ class Address
String id,name,address;
{
Student(id,name,address) String street,city,state,country;
{ Address(street,city,state,country)
{
} }
}
}
Learncodewith Durgesh
Configuration File
Where we declare beans
and its dependency
Learncodewith Durgesh
Data Types( Dependencies)
1)Primitive DataTypes
Byte , short , char , int , float , double , long , boolean
Learncodewith Durgesh
Data Types
2)Collection Type
List , Set , Map and Properties
Learncodewith Durgesh
Life Cycle Methods
Spring provide two important methods
Initialization to every bean
code
Loading
config,
Connecting db,
Webservice etc public void init()
We can change the
name of these
method
public void destroy() But signature must
be
Clean up code same
Learncodewith Durgesh
Life Cycle
Spring bean
25
init()
Configuration
Xml File Then we Read and use the bean
destroy()
Configure Technique
Xml
Spring Interface
Annotation
Using Interfaces
InitializingBean
DisposableBean
Using Annotations
@PostConstruct
@PreDestory
Autowiring in Spring
• Feature of spring Framework in which spring container inject the
dependencies automatically .
• Autowiring can't be used to inject primitive and string values. It
works with reference only.
A B
Manually Automatically
<ref bean=""/>
Programmer Spring container
Autowiring
XML Annotations
Autowiring Modes
@Autowired
no
byName
byType
constructor
autodetect It is deprecated since Spring 3.
Autowiring Advantages
• Automatic
• less code
Autowiring Disadvantages
• No control of programmer.
• It can't be used for primitive and string
values.
Stereotype Annotations
• XML <bean />
@Component
Class Student
{
<context:component-scan base-package=“ ” />
Stereotype Annotation
@Component
Class Student
{
Student student=new Student()
Bean Scope
Singleton
prototype
request
session
globalsession
Configure bean scope
<bean class=“ ” name=“ ” scope=“ ” />
@Component
@Scope( “ ”)
Class Student
{
}
SpEL Spring Expression Language
Supports Parsing and executing expression with the
help of @Value annotations
Expression @Value
Classes,Variable,Methods,Constructors and Objects
and symbols
char,numerics,operators,keywords and special symbols which return a
value
SpEL
@value(“#{11+22}”)
@value(“#{ 8>6 ? 88 : 55”})
static methods object methods variables
How to invoke static method and variable?
T(class).method(param)
T(class).variable
How to create objects?
new Object(value)