SlideShare a Scribd company logo
Spring Framework
Dineesha Suraweera
What is a framework ?
framework is a universal, reusable software environment that provides
particular functionality as part of a larger software platform to facilitate
development of software applications, products and solutions.
Software frameworks may include
support programs
compilers
code libraries
tool sets 2
How to separate framework from library ….
❏Inversion Control: In a framework, unlike in libraries the overall program's flow control is not
dictated by the caller, but by the framework.
❏default behavior
❏extensibility: can be extended by the user usually by selective overriding or specialized by user
code to provide specific functionality.
❏non-modifiable framework code: The framework code, in general, is not supposed to be
modified, while accepting user-implemented extensions.
3
Spring framework
Spring is the most popular application development framework for
enterprise Java.
open source Java platform
initially written by Rod Johnson and was first released under the Apache 2.0
license in June 2003.
lightweight when it comes to size and transparency.
4
Where to use ?
can be used in developing any Java application, but there are extensions for
building web applications on top of the Java EE platform.
Spring framework targets to make J2EE development easier to use and promote
good programming practice by enabling a POJO-based programming model.
5
Benefits of spring..
Spring is organized in a modular fashion
makes use of technologies like several ORM frameworks, logging
frameworks, JEE, Quartz and JDK timers, other view technologies
Testing an application written with Spring is simple
Spring's web framework is a well-designed web MVC framework
provides a convenient API to translate technology-specific exceptions into
consistent, unchecked exceptions
6
Architecture
7
Description of architecture
Core Container
Core provides the fundamental parts of the framework, including the IoC and Dependency
Injection features.
Bean provides BeanFactory which is a sophisticated implementation of the factory pattern.
Context builds on the solid base provided by the Core and Beans modules and it is a medium to
access any objects defined and configured.
SpEL module provides a powerful expression language for querying and manipulating an object
graph at runtime.
8
Data Access/Integration
JDBC provides a JDBC-abstraction layer that removes the need to do tedious JDBC related coding.
ORM provides integration layers for popular object-relational mapping APIs, including JPA, JDO,
Hibernate, and iBatis.
OXM provides an abstraction layer that supports Object/XML mapping implementations for JAXB,
Castor, XMLBeans, JiBX and XStream.
JMS contains features for producing and consuming messages.
Transaction supports programmatic and declarative transaction management for classes that
implement special interfaces and for all your POJOs.
9
Web
Web provides basic web-oriented integration features such as multipart file-upload functionality
and the initialization of the IoC container using servlet listeners and a web-oriented application
context.
Web-MVC contains Spring's model-view-controller (MVC) implementation for web applications.
Web-Socket provides support for WebSocket-based, two-way communication between client and
server in web applications.
Web-Portlet provides the MVC implementation to be used in a portlet environment and mirrors
the functionality of Web-Servlet module.
10
pre-requisites
Java Development Kit (JDK)
Apache Common Logging API
http://commons.apache.org/proper/commons-logging/download_logging.cgi
Spring Framework Libraries
http://repo.spring.io/release/org/springframework/spring/
11
How to use
1. Create java project
1. Add required libraries
12
3. Create source files.
4. Create Bean configuration file
13
14
15
Spring with maven
If you are using Maven for dependency management you don’t even need to supply the logging
dependency explicitly.
To create an application context and use dependency injection to configure an application
16
IoC Containers
Core of the Spring Framework
The container will create the objects, wire them together, configure them, and
manage their complete lifecycle from creation till destruction.
17
uses dependency injection (DI) to manage the components that make up an
application(spring Beans)
Spring BeanFactory Container
simplest container providing basic support for DI and defined by the
org.springframework.beans.factory.BeanFactory interface. The BeanFactory and related interfaces, such as
BeanFactoryAware, InitializingBean, DisposableBean, are still present in Spring for the purposes of backward
compatibility with the large number of third-party frameworks that integrate with Spring.
Spring ApplicationContext Container
adds more enterprise-specific functionality such as the ability to resolve textual messages from a properties file
and the ability to publish application events to interested event listeners. This container is defined by the
org.springframework.context.ApplicationContext interface.
18
Benefits of IoC/DI
Reduced Dependencies
Reduced Dependency Carrying
More Reusable Code
More Testable Code
More Readable Code
19
Bean Definition
A bean is an object that is instantiated, assembled, and otherwise managed by
a Spring IoC container.
The bean definition contains the information called configuration metadata
which is needed for the container to know the followings
How to create a bean
Bean's lifecycle details
Bean's dependencies
20
Spring Configuration Metadata
There are three important methods to provide configuration metadata to the
Spring Container
XML based configuration file.
Annotation-based configuration
Java-based configuration
21
22
Annotation based configuration
To describe a bean wiring,move the bean configuration into the component
class itself by using annotations on the relevant class, method, or field
declaration.
Annotation wiring is not turned on in the Spring container by default
23
Basic annotations
@Required
The @Required annotation applies to bean property setter methods.
@Autowired
The @Autowired annotation can apply to bean property setter methods, non-setter methods, constructor and
properties.
@Qualifier
The @Qualifier annotation along with @Autowired can be used to remove the confusion by specifying which exact
bean will be wired.
JSR-250 Annotations
Spring supports JSR-250 based annotations which include @Resource, @PostConstruct and @PreDestroy
annotations. 24
Java based configuration
Java based configuration option enables you to write most of your Spring
configuration without XML but with the help of few Java-based annotations
@Configuration
class can be used by the Spring IoC container as a source of bean definitions
@Bean Annotations
return an object that should be registered as a bean in the Spring application context.
@Import Annotation
25
Dependency Injection
The Dependency Injection is a design pattern that removes the dependency of
the programs. In such case we provide the information from the external
source such as XML file. It makes our code loosely coupled and easier for
testing.
Spring framework provides two ways to inject dependency
By Constructor
By Setter method
26
In such case, instance of Address class is provided by external source such as
XML file either by constructor or setter method.
27
Beans auto-wiring
Enables you to inject the object dependency implicitly. It internally uses setter or constructor
injection.
Autowiring can't be used to inject primitive and string values. It works with reference only.
28
AOP with Spring Framework
Aspect Oriented Programming entails breaking down program logic into
distinct parts.(like logging, auditing, declarative transactions, security, and
caching etc)
Spring AOP module provides interceptors to intercept an application, when a
method is executed, you can add extra functionality before or after the
method execution.
29
Demo
30
Other Spring projects
Spring Cloud
Spring Data
Spring Security
Spring Social
Spring Mobile
Spring Session
Spring Shell
31
Thank You!
32
Ad

More Related Content

What's hot (20)

Spring mvc
Spring mvcSpring mvc
Spring mvc
Pravin Pundge
 
Spring Web MVC
Spring Web MVCSpring Web MVC
Spring Web MVC
zeeshanhanif
 
Java Spring Framework
Java Spring FrameworkJava Spring Framework
Java Spring Framework
Mehul Jariwala
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
07.pallav
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
Dzmitry Naskou
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
Hùng Nguyễn Huy
 
Apache Maven
Apache MavenApache Maven
Apache Maven
Rahul Tanwani
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
aliagadir
 
Spring annotation
Spring annotationSpring annotation
Spring annotation
Rajiv Srivastava
 
Spring ppt
Spring pptSpring ppt
Spring ppt
Mumbai Academisc
 
Spring core module
Spring core moduleSpring core module
Spring core module
Raj Tomar
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
Vadym Lotar
 
Spring Boot
Spring BootSpring Boot
Spring Boot
Jiayun Zhou
 
Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
Alex Movila
 
Spring framework core
Spring framework coreSpring framework core
Spring framework core
Taemon Piya-Lumyong
 
Spring boot
Spring bootSpring boot
Spring boot
Gyanendra Yadav
 
Selenium WebDriver
Selenium WebDriverSelenium WebDriver
Selenium WebDriver
Yuriy Bezgachnyuk
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
Jeevesh Pandey
 
Spring User Guide
Spring User GuideSpring User Guide
Spring User Guide
Muthuselvam RS
 
Spring boot - an introduction
Spring boot - an introductionSpring boot - an introduction
Spring boot - an introduction
Jonathan Holloway
 

Viewers also liked (20)

Getting Started with Spring Framework
Getting Started with Spring FrameworkGetting Started with Spring Framework
Getting Started with Spring Framework
Edureka!
 
Springs
SpringsSprings
Springs
sammydude10
 
Presentation Spring
Presentation SpringPresentation Spring
Presentation Spring
Nathaniel Richand
 
Spring MVC Annotations
Spring MVC AnnotationsSpring MVC Annotations
Spring MVC Annotations
Jordan Silva
 
Spring 4 - A&BP CC
Spring 4 - A&BP CCSpring 4 - A&BP CC
Spring 4 - A&BP CC
JWORKS powered by Ordina
 
Spring 4 Web App
Spring 4 Web AppSpring 4 Web App
Spring 4 Web App
Rossen Stoyanchev
 
Next stop: Spring 4
Next stop: Spring 4Next stop: Spring 4
Next stop: Spring 4
Oleg Tsal-Tsalko
 
Spring MVC - The Basics
Spring MVC -  The BasicsSpring MVC -  The Basics
Spring MVC - The Basics
Ilio Catallo
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
Nathaniel Richand
 
Spring MVC Basics
Spring MVC BasicsSpring MVC Basics
Spring MVC Basics
Bozhidar Bozhanov
 
Spring MVC 3.0 Framework
Spring MVC 3.0 FrameworkSpring MVC 3.0 Framework
Spring MVC 3.0 Framework
Ravi Kant Soni ([email protected])
 
Spring tutorial
Spring tutorialSpring tutorial
Spring tutorial
Sanjoy Kumer Deb
 
Spring Framework Essentials
Spring Framework EssentialsSpring Framework Essentials
Spring Framework Essentials
Edward Goikhman
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
Vinay Kumar
 
Sectors of indian economy
Sectors of indian economySectors of indian economy
Sectors of indian economy
madan kumar
 
nationalism movement in Indochina
nationalism movement in Indochina nationalism movement in Indochina
nationalism movement in Indochina
madan kumar
 
Spock
SpockSpock
Spock
Evgeny Borisov
 
Physicalfeaturesofindia
Physicalfeaturesofindia Physicalfeaturesofindia
Physicalfeaturesofindia
madan kumar
 
Spring framework
Spring frameworkSpring framework
Spring framework
Rajkumar Singh
 
мифы о спарке
мифы о спарке мифы о спарке
мифы о спарке
Evgeny Borisov
 
Ad

Similar to Introduction to Spring Framework (20)

Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of ControlJava Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Arjun Thakur
 
Java spring ppt
Java spring pptJava spring ppt
Java spring ppt
natashasweety7
 
Spring 2
Spring 2Spring 2
Spring 2
Aruvi Thottlan
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans
Hitesh-Java
 
Session 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI BeansSession 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI Beans
PawanMM
 
Spring (1)
Spring (1)Spring (1)
Spring (1)
Aneega
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
suranisaunak
 
spring framework ppt by Rohit malav
spring framework ppt by Rohit malavspring framework ppt by Rohit malav
spring framework ppt by Rohit malav
Rohit malav
 
Spring framework-tutorial
Spring framework-tutorialSpring framework-tutorial
Spring framework-tutorial
vinayiqbusiness
 
Spring notes
Spring notesSpring notes
Spring notes
Rajeev Uppala
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
ThirupathiReddy Vajjala
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptx
NourhanTarek23
 
Spring framework
Spring frameworkSpring framework
Spring framework
Kani Selvam
 
Spring framework
Spring frameworkSpring framework
Spring framework
Shivi Kashyap
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
ASG
 
Spring framework Introduction
Spring framework  IntroductionSpring framework  Introduction
Spring framework Introduction
Anuj Singh Rajput
 
Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2
Mindsmapped Consulting
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
javatrainingonline
 
Spring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggetsSpring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggets
Virtual Nuggets
 
Introduction to j2 ee frameworks
Introduction to j2 ee frameworksIntroduction to j2 ee frameworks
Introduction to j2 ee frameworks
Mukesh Kumar
 
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of ControlJava Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Java Spring framework, Dependency Injection, DI, IoC, Inversion of Control
Arjun Thakur
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans
Hitesh-Java
 
Session 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI BeansSession 43 - Spring - Part 1 - IoC DI Beans
Session 43 - Spring - Part 1 - IoC DI Beans
PawanMM
 
Spring (1)
Spring (1)Spring (1)
Spring (1)
Aneega
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
suranisaunak
 
spring framework ppt by Rohit malav
spring framework ppt by Rohit malavspring framework ppt by Rohit malav
spring framework ppt by Rohit malav
Rohit malav
 
Spring framework-tutorial
Spring framework-tutorialSpring framework-tutorial
Spring framework-tutorial
vinayiqbusiness
 
Introduction to Spring sec1.pptx
Introduction to Spring sec1.pptxIntroduction to Spring sec1.pptx
Introduction to Spring sec1.pptx
NourhanTarek23
 
Spring framework
Spring frameworkSpring framework
Spring framework
Kani Selvam
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
ASG
 
Spring framework Introduction
Spring framework  IntroductionSpring framework  Introduction
Spring framework Introduction
Anuj Singh Rajput
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
javatrainingonline
 
Spring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggetsSpring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggets
Virtual Nuggets
 
Introduction to j2 ee frameworks
Introduction to j2 ee frameworksIntroduction to j2 ee frameworks
Introduction to j2 ee frameworks
Mukesh Kumar
 
Ad

Recently uploaded (20)

Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Download Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With LatestDownload Wondershare Filmora Crack [2025] With Latest
Download Wondershare Filmora Crack [2025] With Latest
tahirabibi60507
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]Get & Download Wondershare Filmora Crack Latest [2025]
Get & Download Wondershare Filmora Crack Latest [2025]
saniaaftab72555
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
Interactive odoo dashboards for sales, CRM , Inventory, Invoice, Purchase, Pr...
AxisTechnolabs
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Exploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the FutureExploring Wayland: A Modern Display Server for the Future
Exploring Wayland: A Modern Display Server for the Future
ICS
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 

Introduction to Spring Framework

  • 2. What is a framework ? framework is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate development of software applications, products and solutions. Software frameworks may include support programs compilers code libraries tool sets 2
  • 3. How to separate framework from library …. ❏Inversion Control: In a framework, unlike in libraries the overall program's flow control is not dictated by the caller, but by the framework. ❏default behavior ❏extensibility: can be extended by the user usually by selective overriding or specialized by user code to provide specific functionality. ❏non-modifiable framework code: The framework code, in general, is not supposed to be modified, while accepting user-implemented extensions. 3
  • 4. Spring framework Spring is the most popular application development framework for enterprise Java. open source Java platform initially written by Rod Johnson and was first released under the Apache 2.0 license in June 2003. lightweight when it comes to size and transparency. 4
  • 5. Where to use ? can be used in developing any Java application, but there are extensions for building web applications on top of the Java EE platform. Spring framework targets to make J2EE development easier to use and promote good programming practice by enabling a POJO-based programming model. 5
  • 6. Benefits of spring.. Spring is organized in a modular fashion makes use of technologies like several ORM frameworks, logging frameworks, JEE, Quartz and JDK timers, other view technologies Testing an application written with Spring is simple Spring's web framework is a well-designed web MVC framework provides a convenient API to translate technology-specific exceptions into consistent, unchecked exceptions 6
  • 8. Description of architecture Core Container Core provides the fundamental parts of the framework, including the IoC and Dependency Injection features. Bean provides BeanFactory which is a sophisticated implementation of the factory pattern. Context builds on the solid base provided by the Core and Beans modules and it is a medium to access any objects defined and configured. SpEL module provides a powerful expression language for querying and manipulating an object graph at runtime. 8
  • 9. Data Access/Integration JDBC provides a JDBC-abstraction layer that removes the need to do tedious JDBC related coding. ORM provides integration layers for popular object-relational mapping APIs, including JPA, JDO, Hibernate, and iBatis. OXM provides an abstraction layer that supports Object/XML mapping implementations for JAXB, Castor, XMLBeans, JiBX and XStream. JMS contains features for producing and consuming messages. Transaction supports programmatic and declarative transaction management for classes that implement special interfaces and for all your POJOs. 9
  • 10. Web Web provides basic web-oriented integration features such as multipart file-upload functionality and the initialization of the IoC container using servlet listeners and a web-oriented application context. Web-MVC contains Spring's model-view-controller (MVC) implementation for web applications. Web-Socket provides support for WebSocket-based, two-way communication between client and server in web applications. Web-Portlet provides the MVC implementation to be used in a portlet environment and mirrors the functionality of Web-Servlet module. 10
  • 11. pre-requisites Java Development Kit (JDK) Apache Common Logging API http://commons.apache.org/proper/commons-logging/download_logging.cgi Spring Framework Libraries http://repo.spring.io/release/org/springframework/spring/ 11
  • 12. How to use 1. Create java project 1. Add required libraries 12
  • 13. 3. Create source files. 4. Create Bean configuration file 13
  • 14. 14
  • 15. 15
  • 16. Spring with maven If you are using Maven for dependency management you don’t even need to supply the logging dependency explicitly. To create an application context and use dependency injection to configure an application 16
  • 17. IoC Containers Core of the Spring Framework The container will create the objects, wire them together, configure them, and manage their complete lifecycle from creation till destruction. 17
  • 18. uses dependency injection (DI) to manage the components that make up an application(spring Beans) Spring BeanFactory Container simplest container providing basic support for DI and defined by the org.springframework.beans.factory.BeanFactory interface. The BeanFactory and related interfaces, such as BeanFactoryAware, InitializingBean, DisposableBean, are still present in Spring for the purposes of backward compatibility with the large number of third-party frameworks that integrate with Spring. Spring ApplicationContext Container adds more enterprise-specific functionality such as the ability to resolve textual messages from a properties file and the ability to publish application events to interested event listeners. This container is defined by the org.springframework.context.ApplicationContext interface. 18
  • 19. Benefits of IoC/DI Reduced Dependencies Reduced Dependency Carrying More Reusable Code More Testable Code More Readable Code 19
  • 20. Bean Definition A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container. The bean definition contains the information called configuration metadata which is needed for the container to know the followings How to create a bean Bean's lifecycle details Bean's dependencies 20
  • 21. Spring Configuration Metadata There are three important methods to provide configuration metadata to the Spring Container XML based configuration file. Annotation-based configuration Java-based configuration 21
  • 22. 22
  • 23. Annotation based configuration To describe a bean wiring,move the bean configuration into the component class itself by using annotations on the relevant class, method, or field declaration. Annotation wiring is not turned on in the Spring container by default 23
  • 24. Basic annotations @Required The @Required annotation applies to bean property setter methods. @Autowired The @Autowired annotation can apply to bean property setter methods, non-setter methods, constructor and properties. @Qualifier The @Qualifier annotation along with @Autowired can be used to remove the confusion by specifying which exact bean will be wired. JSR-250 Annotations Spring supports JSR-250 based annotations which include @Resource, @PostConstruct and @PreDestroy annotations. 24
  • 25. Java based configuration Java based configuration option enables you to write most of your Spring configuration without XML but with the help of few Java-based annotations @Configuration class can be used by the Spring IoC container as a source of bean definitions @Bean Annotations return an object that should be registered as a bean in the Spring application context. @Import Annotation 25
  • 26. Dependency Injection The Dependency Injection is a design pattern that removes the dependency of the programs. In such case we provide the information from the external source such as XML file. It makes our code loosely coupled and easier for testing. Spring framework provides two ways to inject dependency By Constructor By Setter method 26
  • 27. In such case, instance of Address class is provided by external source such as XML file either by constructor or setter method. 27
  • 28. Beans auto-wiring Enables you to inject the object dependency implicitly. It internally uses setter or constructor injection. Autowiring can't be used to inject primitive and string values. It works with reference only. 28
  • 29. AOP with Spring Framework Aspect Oriented Programming entails breaking down program logic into distinct parts.(like logging, auditing, declarative transactions, security, and caching etc) Spring AOP module provides interceptors to intercept an application, when a method is executed, you can add extra functionality before or after the method execution. 29
  • 31. Other Spring projects Spring Cloud Spring Data Spring Security Spring Social Spring Mobile Spring Session Spring Shell 31