IEEE Day 2013 Baku - Spring Framework overview and Spring MVC
1. IEEE Day 2013
Ilkin Ashrafli
Internal Applications team Developer
Azercell Telecom LLC
http://www.linkedin.com/in/ilkinesrefli
https://www.facebook.com/ilkin.esrefli
01 October 2013, Qafqaz University
Spring Framework
overview and Spring MVC
2. me
Graduated from Applied Mathematics of Baku State
University
Java, Java EE, PL/SQL Developer
Internal Applications team developer at Azercell
Telecom LLC
10/01/132
6. what is spring framework?
First version Released in 2003 by Rod Johnson
Java Enterprise application framework for easy and
quick development
Open source
Using Pojo
Most popular application development framework for
enterprise java
10/01/136
7. what is spring framework?
Lightweight
Inversion of control (IOC)
Aspect oriented (AOP)
MVC Framework
JDBC Exception Handling
10/01/137
8. why use spring framework?
Modular
Testable
Adaptive to change
10/01/138
9. why use spring framework?
Proven
Power of IoC, wiring components (JavaBeans)
through Dependency
Easy test
Easy use other frameworks
Insulates a user of a functionality from
implementation details
Hides unnecessary exceptions
10/01/139
11. solutions
Modern web (rest, html5, ajax)
Data access (rdbms, nosql, mapreduce, cloud)
Integration (messaging, batch applications)
Mobile (android, ios)
Social network (facebook twitter linkedin)
Security (authentication and authorization)
Cloud ready (google app engine, amazon ec2, cloud
foundry)
10/01/1311
12. solutions
Spring frameworkSpring framework
Spring Batch
Spring Integration
Spring Security
Spring Web Service
Spring Data
Spring Hadoop
Spring Mobile
Spring Social
Spring Web Flow
Spring BlazeDS
Spring Roo
Spring .NET
Spring Python
Grails etc.
10/01/1312
14. inversion of control - IoC
Hollywood principle
Don’t call me, I’ll call youDon’t call me, I’ll call you
10/01/1314
15. inversion of control - IoC
IoC – is a common characteristic of frameworks.
Inversion of Control serves as a design guideline
According to Martin Fowler the etymology of the
phrase dates back to 1988
10/01/1315
16. inversion of control - IoC
In OO Design, components/objects are desired to be
reusable
However, components depends with one another to
deliver the solution
Such dependencies among components results the
tight coupling
10/01/1316
17. inversion of control - IoC
Component dependency resolution
Among Components
Within Component
Configuration management
Lifecycle management
10/01/1317
18. inversion of control - IoC
Apache Avalon
Apache Hivemine
Dagger (for Android and
Java)
Google Guice
Butterfly DI DSL
Nano Container
Pico Container
Silk DI
Spring FrameworkSpring Framework
10/01/1318
19. inversion of control - IoC
Java EE: EJB and EJB Container
Spring: POJO and POJO Container
Spring vs Java EE – Lightweight
Object Creation
Object Lookup
Object Life Cycle Management
10/01/1319
27. spring framework and jee
Spring
Spring is framework and single
vendor solutions
Has made tremendous
contributions to the
development community
Supports for almost any web
container
Jee
JEE is standard
Java Community Process
Program - Java Specification
Request(JSR)
JEE needs application
server(glassfish, jboss,
weblogic etc.)
10/01/1327
28. spring framework and jee
Spring
Have a look at the job postings
in Monster or Dice. A very
large proportion of Java jobs
require Spring experience
There has been a lot of
innovation lately in the cloud
space
Jee
Java finally woke up and
responded with Java EE 6
JEE, JSF 2.0 is more critical.
Java badly needs a modern
MVC framework
10/01/1328
45. spring mvc
Spring MVC provide a clear separation between a
model, view and Controller
Provide both XML-based and annotation-based
approaches
Enriched by Spring application context
Takes convention over configuration approach
Uses open-close principle
10/01/1345
47. spring ide
SpringSource Tool Suite (STS)
http://spring.io/tools/sts
Eclipse-powered development environment for
building Spring-powered enterprise applications
Supports Java, Spring, Groovy and Grails
Comes with developer edition of vFabric tc Server
vFabric tc Server is Tomcat that is optimized for
Spring
10/01/1347
54. references
Spring – www.spring.io
Inversion of Control -
http://www.martinfowler.com/articles/injection.html
Java Development With Spring Framework – Johnson,
Hoeller et al.
Spring in Action – Walls, Breidenbach
10/01/1354