SlideShare a Scribd company logo
1 of 18
The Spring Framework
A quick overview
The Spring Framework
1. Spring principles: IoC
2. Spring principles: AOP
3. A handful of services
4. A MVC framework
5. Conclusion
1. Spring principles: IoC
 Inversion of Control: an
object interacts with its
environment
 Objects are « plugged »
one in another
 The environment is set
up by the container
instead of the object
itself
1. Spring principles: IoC
 Without IoC:
 With IoC
1. Spring principles: IoC
 Useful for separating dao and business layer
 Useful for separating controllers and
business layer
 The code is more extensible, easier to
read, and modules/layers can easily be
replaced
2. Spring principles: AOP
 Separates the core business
code from the aspects we
wrap around it: security,
transaction management, …
 Through AOP, we add
transversal functionalities
to objects (ie not directly
related to the code it
contains)
2. Spring principles: AOP
 Without AOP
 With AOP
2. Spring principles: AOP
 Useful for automatic handling of transaction
with Hibernate
 Useful for Acegi (automatic credentials
checking before executing some methods)
 Code smaller, easier to read (not polluted
by transversal aspects not directly relevant)
3. A handful of services
3. A handful of services
 DAO support: Spring offers templates classes to deal
with a Hibernate/JDBC/… connection
 Exception translator: all the proprietary
Hibernate/JDBC/… exceptions are catched by
Spring, and rethrown as Runtime non-specific
consistent exceptions
 Hence the DAO code is not dependant on the
underlying datasource!
3. A handful of services
 Many ORM tools are supported: Hibernate,
JDO, Apache OJB, iBATIS
 Templates using IoC to reduce the amount of
code in the DAO objects
3. A handful of services
 Support of RMI
 Very easy to expose and connect to
webservices
 Support of JMS
 JMS templates, JMSException translation
3. A handful of services
3. A handful of services
 A mail abstraction layer
– Templates
 Jobs scheduling
(Quartz, Timer)
– Cron
– Business layer unaware
4. A full MVC Framework
 Clear separation of roles: controller, validator,
form object, Dispatch servlet, View resolver,
…
 Extensible and adaptable
 Several views of a result (pdf, excel, html, …)
 Can be wired (possible to use transparently
the IoC pattern)
4. A full MVC Framework
 Can be used with other frameworks: JSF,
Struts, Tapestry, Webwork
 Completely transparent: no need to change
anything in what is done by these other
frameworks
4. A full MVC Framework
5. Conclusion
 Learning curve
 XML configuration & annotations
 Tiny
 Open-source and free
 Active development
 Linked with several important Java projects
(Hibernate, Acegi, …)

More Related Content

What's hot

Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring FrameworkDineesha Suraweera
 
MVC with Zend Framework
MVC with Zend FrameworkMVC with Zend Framework
MVC with Zend Frameworkwebholics
 
Java DataBase Connectivity API (JDBC API)
Java DataBase Connectivity API (JDBC API)Java DataBase Connectivity API (JDBC API)
Java DataBase Connectivity API (JDBC API)Luzan Baral
 
Zend MVC pattern based Framework – Best for Enterprise web applications
Zend MVC pattern based Framework – Best for Enterprise web applicationsZend MVC pattern based Framework – Best for Enterprise web applications
Zend MVC pattern based Framework – Best for Enterprise web applicationsEtisbew Technology Group
 
Dependency Injection And Ioc Containers
Dependency Injection And Ioc ContainersDependency Injection And Ioc Containers
Dependency Injection And Ioc ContainersTim Murphy
 
JDBC: java DataBase connectivity
JDBC: java DataBase connectivityJDBC: java DataBase connectivity
JDBC: java DataBase connectivityTanmoy Barman
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by GoogleASG
 
Spring db-access mod03
Spring db-access mod03Spring db-access mod03
Spring db-access mod03Guo Albert
 
Struts(mrsurwar) ppt
Struts(mrsurwar) pptStruts(mrsurwar) ppt
Struts(mrsurwar) pptmrsurwar
 
Building Web Applications with Zend Framework
Building Web Applications with Zend FrameworkBuilding Web Applications with Zend Framework
Building Web Applications with Zend FrameworkPhil Brown
 
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSSoftware architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSJinkyu Kim
 
Codeigniter simple explanation
Codeigniter simple explanation Codeigniter simple explanation
Codeigniter simple explanation Arumugam P
 
Java- JDBC- Mazenet Solution
Java- JDBC- Mazenet SolutionJava- JDBC- Mazenet Solution
Java- JDBC- Mazenet SolutionMazenetsolution
 

What's hot (20)

Struts ppt 1
Struts ppt 1Struts ppt 1
Struts ppt 1
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
MVC with Zend Framework
MVC with Zend FrameworkMVC with Zend Framework
MVC with Zend Framework
 
Java DataBase Connectivity API (JDBC API)
Java DataBase Connectivity API (JDBC API)Java DataBase Connectivity API (JDBC API)
Java DataBase Connectivity API (JDBC API)
 
Zend MVC pattern based Framework – Best for Enterprise web applications
Zend MVC pattern based Framework – Best for Enterprise web applicationsZend MVC pattern based Framework – Best for Enterprise web applications
Zend MVC pattern based Framework – Best for Enterprise web applications
 
Dependency Injection And Ioc Containers
Dependency Injection And Ioc ContainersDependency Injection And Ioc Containers
Dependency Injection And Ioc Containers
 
JDBC: java DataBase connectivity
JDBC: java DataBase connectivityJDBC: java DataBase connectivity
JDBC: java DataBase connectivity
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Spring db-access mod03
Spring db-access mod03Spring db-access mod03
Spring db-access mod03
 
Mvc architecture
Mvc architectureMvc architecture
Mvc architecture
 
Struts(mrsurwar) ppt
Struts(mrsurwar) pptStruts(mrsurwar) ppt
Struts(mrsurwar) ppt
 
Building Web Applications with Zend Framework
Building Web Applications with Zend FrameworkBuilding Web Applications with Zend Framework
Building Web Applications with Zend Framework
 
Introduction to react js
Introduction to react jsIntroduction to react js
Introduction to react js
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC Architecture
 
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOSSoftware architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
Software architectural design patterns(MVC, MVP, MVVM, VIPER) for iOS
 
Why Use MVC?
Why Use MVC?Why Use MVC?
Why Use MVC?
 
Codeigniter simple explanation
Codeigniter simple explanation Codeigniter simple explanation
Codeigniter simple explanation
 
Java- JDBC- Mazenet Solution
Java- JDBC- Mazenet SolutionJava- JDBC- Mazenet Solution
Java- JDBC- Mazenet Solution
 
Overview Of JDBC
Overview Of JDBCOverview Of JDBC
Overview Of JDBC
 

Viewers also liked

Camino pelicula
Camino peliculaCamino pelicula
Camino peliculayekaortiz
 
A corrente racional tecnológica e a cibercultura
A corrente racional tecnológica e a ciberculturaA corrente racional tecnológica e a cibercultura
A corrente racional tecnológica e a ciberculturaRosicleria
 
on trend magazine 2016 Reprints Of Articles By Ronald G. Shapiro, Ph D
on trend magazine 2016 Reprints Of Articles By Ronald G. Shapiro, Ph D on trend magazine 2016 Reprints Of Articles By Ronald G. Shapiro, Ph D
on trend magazine 2016 Reprints Of Articles By Ronald G. Shapiro, Ph D Ronald G. Shapiro
 
HTML for Beginners - Become a Webmaster
HTML for Beginners - Become a WebmasterHTML for Beginners - Become a Webmaster
HTML for Beginners - Become a Webmasterrichards9696
 
Soal uts matematika kelas 2 semester 2
Soal uts matematika kelas 2 semester 2Soal uts matematika kelas 2 semester 2
Soal uts matematika kelas 2 semester 2Sekolah Dasar
 
Soal latihan ulangan matematika
Soal latihan ulangan matematikaSoal latihan ulangan matematika
Soal latihan ulangan matematikanovi wahyu
 
Primer Belaundismo, Primer Gobierno de Fernando Belaunde Terry (1963-1968)
Primer Belaundismo, Primer  Gobierno de Fernando Belaunde Terry (1963-1968)Primer Belaundismo, Primer  Gobierno de Fernando Belaunde Terry (1963-1968)
Primer Belaundismo, Primer Gobierno de Fernando Belaunde Terry (1963-1968)Edith Elejalde
 
Nuevo fichaje del real madrid cf
Nuevo fichaje del real madrid cfNuevo fichaje del real madrid cf
Nuevo fichaje del real madrid cfJorgeNando
 
Preguntados 4º B - 2015 Stella Maris
Preguntados 4º B - 2015 Stella MarisPreguntados 4º B - 2015 Stella Maris
Preguntados 4º B - 2015 Stella MarisAlejandra Attorresi
 

Viewers also liked (15)

PMP Exam-Prep
PMP Exam-PrepPMP Exam-Prep
PMP Exam-Prep
 
My p.l.e
My  p.l.eMy  p.l.e
My p.l.e
 
Camino pelicula
Camino peliculaCamino pelicula
Camino pelicula
 
Clase 9
Clase 9Clase 9
Clase 9
 
Ajax
AjaxAjax
Ajax
 
J query1
J query1J query1
J query1
 
A corrente racional tecnológica e a cibercultura
A corrente racional tecnológica e a ciberculturaA corrente racional tecnológica e a cibercultura
A corrente racional tecnológica e a cibercultura
 
on trend magazine 2016 Reprints Of Articles By Ronald G. Shapiro, Ph D
on trend magazine 2016 Reprints Of Articles By Ronald G. Shapiro, Ph D on trend magazine 2016 Reprints Of Articles By Ronald G. Shapiro, Ph D
on trend magazine 2016 Reprints Of Articles By Ronald G. Shapiro, Ph D
 
HTML for Beginners - Become a Webmaster
HTML for Beginners - Become a WebmasterHTML for Beginners - Become a Webmaster
HTML for Beginners - Become a Webmaster
 
Ist IoT „smarter“? Von Smart Factories, Smart Products und Smart Services
Ist IoT „smarter“? Von Smart Factories, Smart Products und Smart ServicesIst IoT „smarter“? Von Smart Factories, Smart Products und Smart Services
Ist IoT „smarter“? Von Smart Factories, Smart Products und Smart Services
 
Soal uts matematika kelas 2 semester 2
Soal uts matematika kelas 2 semester 2Soal uts matematika kelas 2 semester 2
Soal uts matematika kelas 2 semester 2
 
Soal latihan ulangan matematika
Soal latihan ulangan matematikaSoal latihan ulangan matematika
Soal latihan ulangan matematika
 
Primer Belaundismo, Primer Gobierno de Fernando Belaunde Terry (1963-1968)
Primer Belaundismo, Primer  Gobierno de Fernando Belaunde Terry (1963-1968)Primer Belaundismo, Primer  Gobierno de Fernando Belaunde Terry (1963-1968)
Primer Belaundismo, Primer Gobierno de Fernando Belaunde Terry (1963-1968)
 
Nuevo fichaje del real madrid cf
Nuevo fichaje del real madrid cfNuevo fichaje del real madrid cf
Nuevo fichaje del real madrid cf
 
Preguntados 4º B - 2015 Stella Maris
Preguntados 4º B - 2015 Stella MarisPreguntados 4º B - 2015 Stella Maris
Preguntados 4º B - 2015 Stella Maris
 

Similar to Spring Framework Quick Overview IoC AOP MVC Services

Spring framework-tutorial
Spring framework-tutorialSpring framework-tutorial
Spring framework-tutorialvinayiqbusiness
 
Spring Basics
Spring BasicsSpring Basics
Spring BasicsEmprovise
 
Spring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggetsSpring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggetsVirtual Nuggets
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring FrameworkASG
 
Introduction to Spring
Introduction to SpringIntroduction to Spring
Introduction to SpringSujit Kumar
 
1. Spring intro IoC
1. Spring intro IoC1. Spring intro IoC
1. Spring intro IoCASG
 
Spring framework Introduction
Spring framework  IntroductionSpring framework  Introduction
Spring framework IntroductionAnuj Singh Rajput
 
Introduction to j2 ee frameworks
Introduction to j2 ee frameworksIntroduction to j2 ee frameworks
Introduction to j2 ee frameworksMukesh Kumar
 
Spring framework
Spring frameworkSpring framework
Spring frameworkKani Selvam
 
Spring (1)
Spring (1)Spring (1)
Spring (1)Aneega
 
The Complete Spring Tutorial
The Complete Spring TutorialThe Complete Spring Tutorial
The Complete Spring Tutorialcribes
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2javatrainingonline
 

Similar to Spring Framework Quick Overview IoC AOP MVC Services (20)

Spring Framework Rohit
Spring Framework RohitSpring Framework Rohit
Spring Framework Rohit
 
Spring notes
Spring notesSpring notes
Spring notes
 
Spring framework-tutorial
Spring framework-tutorialSpring framework-tutorial
Spring framework-tutorial
 
Spring
SpringSpring
Spring
 
Spring 2
Spring 2Spring 2
Spring 2
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Spring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggetsSpring Framework Tutorial | VirtualNuggets
Spring Framework Tutorial | VirtualNuggets
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Introduction to Spring
Introduction to SpringIntroduction to Spring
Introduction to Spring
 
1. Spring intro IoC
1. Spring intro IoC1. Spring intro IoC
1. Spring intro IoC
 
Spring
SpringSpring
Spring
 
Spring framework Introduction
Spring framework  IntroductionSpring framework  Introduction
Spring framework Introduction
 
ios basics
ios basicsios basics
ios basics
 
Spring ppt
Spring pptSpring ppt
Spring ppt
 
Introduction to j2 ee frameworks
Introduction to j2 ee frameworksIntroduction to j2 ee frameworks
Introduction to j2 ee frameworks
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
Spring (1)
Spring (1)Spring (1)
Spring (1)
 
The Complete Spring Tutorial
The Complete Spring TutorialThe Complete Spring Tutorial
The Complete Spring Tutorial
 
Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2Java J2EE Interview Questions Part 2
Java J2EE Interview Questions Part 2
 
Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2Java J2EE Interview Question Part 2
Java J2EE Interview Question Part 2
 

More from Manav Prasad (20)

Experience with mulesoft
Experience with mulesoftExperience with mulesoft
Experience with mulesoft
 
Mulesoftconnectors
MulesoftconnectorsMulesoftconnectors
Mulesoftconnectors
 
Mule and web services
Mule and web servicesMule and web services
Mule and web services
 
Mulesoft cloudhub
Mulesoft cloudhubMulesoft cloudhub
Mulesoft cloudhub
 
Perl tutorial
Perl tutorialPerl tutorial
Perl tutorial
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
 
Jpa
JpaJpa
Jpa
 
Spring introduction
Spring introductionSpring introduction
Spring introduction
 
Json
Json Json
Json
 
Rest introduction
Rest introductionRest introduction
Rest introduction
 
Exceptions in java
Exceptions in javaExceptions in java
Exceptions in java
 
Junit
JunitJunit
Junit
 
Xml parsers
Xml parsersXml parsers
Xml parsers
 
Xpath
XpathXpath
Xpath
 
Xslt
XsltXslt
Xslt
 
Xhtml
XhtmlXhtml
Xhtml
 
Css
CssCss
Css
 
Introduction to html5
Introduction to html5Introduction to html5
Introduction to html5
 
J query
J queryJ query
J query
 
Unix shell scripting basics
Unix shell scripting basicsUnix shell scripting basics
Unix shell scripting basics
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

Spring Framework Quick Overview IoC AOP MVC Services

  • 1. The Spring Framework A quick overview
  • 2. The Spring Framework 1. Spring principles: IoC 2. Spring principles: AOP 3. A handful of services 4. A MVC framework 5. Conclusion
  • 3. 1. Spring principles: IoC  Inversion of Control: an object interacts with its environment  Objects are « plugged » one in another  The environment is set up by the container instead of the object itself
  • 4. 1. Spring principles: IoC  Without IoC:  With IoC
  • 5. 1. Spring principles: IoC  Useful for separating dao and business layer  Useful for separating controllers and business layer  The code is more extensible, easier to read, and modules/layers can easily be replaced
  • 6. 2. Spring principles: AOP  Separates the core business code from the aspects we wrap around it: security, transaction management, …  Through AOP, we add transversal functionalities to objects (ie not directly related to the code it contains)
  • 7. 2. Spring principles: AOP  Without AOP  With AOP
  • 8. 2. Spring principles: AOP  Useful for automatic handling of transaction with Hibernate  Useful for Acegi (automatic credentials checking before executing some methods)  Code smaller, easier to read (not polluted by transversal aspects not directly relevant)
  • 9. 3. A handful of services
  • 10. 3. A handful of services  DAO support: Spring offers templates classes to deal with a Hibernate/JDBC/… connection  Exception translator: all the proprietary Hibernate/JDBC/… exceptions are catched by Spring, and rethrown as Runtime non-specific consistent exceptions  Hence the DAO code is not dependant on the underlying datasource!
  • 11. 3. A handful of services  Many ORM tools are supported: Hibernate, JDO, Apache OJB, iBATIS  Templates using IoC to reduce the amount of code in the DAO objects
  • 12. 3. A handful of services  Support of RMI  Very easy to expose and connect to webservices  Support of JMS  JMS templates, JMSException translation
  • 13. 3. A handful of services
  • 14. 3. A handful of services  A mail abstraction layer – Templates  Jobs scheduling (Quartz, Timer) – Cron – Business layer unaware
  • 15. 4. A full MVC Framework  Clear separation of roles: controller, validator, form object, Dispatch servlet, View resolver, …  Extensible and adaptable  Several views of a result (pdf, excel, html, …)  Can be wired (possible to use transparently the IoC pattern)
  • 16. 4. A full MVC Framework  Can be used with other frameworks: JSF, Struts, Tapestry, Webwork  Completely transparent: no need to change anything in what is done by these other frameworks
  • 17. 4. A full MVC Framework
  • 18. 5. Conclusion  Learning curve  XML configuration & annotations  Tiny  Open-source and free  Active development  Linked with several important Java projects (Hibernate, Acegi, …)