3. What is Spring?
Ěľ Comprehensive Programming/Config model
Ěľ Modern Java-based (JVM) Enterprise
Ěľ Focus: Lightweight & âPlumbingâ
Ěľ Flexible Dependency Injection
Ěľ Infrastructure (support) for declarative:
Ěľ transactions
Ěľ caching
Ěľ validation
Ěľ formatting
BIG SMART DATA
Spring Origin: Rod Johnson (Expert One-on-One J2EE Design and Development)
4. What is Spring?
Ěľ Powerful abstractions:
Ěľ JDBC, JPA, JTA, JMS
Ěľ Support for open source frameworks:
Ěľ Hibernate, Quartz
Ěľ Flexible Web Framework for RESTful MVC
Ěľ Rich testing facilities
BIG SMART DATA
5. âť Modular in design
âť Incremental adoption
âť Range of deployment
platforms, such as
Tomcat & WebSphere
âť Citizen of major clouds
such as Heroku, VMware,
& Amazon
What is Spring?
BIG SMART DATA
6. ⢠Dependency Injection
⢠Aspect-oriented programming
⢠Data access framework
⢠Transaction management framework
⢠Remote access framework
⢠Convention-over-configuration
⢠Model-view-controller framework
BIG SMART DATA
Spring Modules
7. ⢠Inversion of control container
⢠Uses Java Reflection
⢠Creates managed objects (âbeansâ)
⢠Dependency Lookup
⢠Dependency Injection Patterns:
⢠Constructors
⢠Properties
⢠Factories
BIG SMART DATA
Dependency Injection
Spring Modules
8. BIG SMART DATA
Dependency Injection
Spring Modules
The Spring
Container
Fully
configured
system
Configuration
Metadata
Your Business
Objects
(POJOs)
produces
9. ⢠AOP:
⢠increases modularity
⢠allows for separation of cross-
cutting concerns
BIG SMART DATA
Aspect-oriented framework
Spring Modules
10. ⢠Resource management
⢠Exception handling
⢠Transaction participation
⢠Resource unwrapping
⢠Abstraction
BIG SMART DATA
Data access framework
Spring Modules
11. ⢠Spring brings transaction abstractions:
⢠global, local, nested
⢠Platform TransactionManager
⢠Transaction Template
⢠metadata or Java annotations
BIG SMART DATA
Transaction management framework
Spring Modules
12. ⢠Abstraction for various RPC technologies
BIG SMART DATA
Remote access framework
Spring Modules
Convention-over-configuration
⢠Spring Roo
(http://www.springsource.org/spring-roo)
14. ⢠Front Controller: DispatcherServlet Class
BIG SMART DATA
MVC Framework
Spring Modules
15. ⢠Clear separation of roles:
Each role (controller, validator, command
object, DispatcherServlet, etc) can be fulfilled
by a specialized object
⢠Configuration of both framework and
application classes as JavaBeans:
BIG SMART DATA
MVC Framework
Spring Modules
16. ⢠Adaptability & flexibility:
Define any controller method signature you
need, possibly using one of the parameter
annotations
⢠Reusable business code:
Use existing business objects as command or
form objects instead of mirroring them to
extend a particular framework base class
BIG SMART DATA
MVC Framework
Spring Modules
17. ⢠Customizable binding & validation
⢠Customizable handler mapping & view resolution
⢠Flexible model transfer:
Model transfer with a name/value Map supports
easy integration with any view technology
⢠Customizable locale and theme resolution
⢠Support for JSPs with/without Spring tag library
BIG SMART DATA
MVC Framework
Spring Modules
18. ⢠Support for JSTL
⢠Support for Velocity without the need for
extra bridges
⢠Spring tag library for data binding & themes
⢠JSP form tag library
BIG SMART DATA
MVC Framework
Spring Modules
19. Spring Resources
Tutorials:
Developing a Spring Framework MVC application:
http://static.springsource.org/docs/Spring-MVC-step-by-step/
Introduction to Spring Web MVC:
https://netbeans.org/kb/docs/web/quickstart-webapps-spring.html
Resources:
The Spring Framework:
http://www.springsource.org/spring-framework
Modern Web:
http://www.springsource.org/features/modern-web
NetBeans IDE:
http://netbeans.org
BIG SMART DATA