Thomas Wiradikusuma http://www.wiradikusuma.com Java User Group Indonesia JaMU 07.05 May 26, 2007 Exposed
What is Spring?
Spring is a lightweight container, with wrappers that make it easy to use many different services and frameworks. Lightweight containers accept any JavaBean, instead of specific types of components.
Spring is very popular
Spring is for lightweight enterprise Java
J2EE should be easier to use
It's best to program to interfaces, rather than classes
JavaBeans offer a great way of configuring applications
OO design is more important than any implementation technology
Checked exceptions are overused in Java
Testability is essential
Why use Spring?
The most complete lightweight container , providing centralized, automated configuration and wiring of your application objects. The container is non-invasive , capable of assembling a complex system from a set of loosely-coupled components (POJOs) in a consistent and transparent fashion.
A common abstraction layer for transaction management , allowing for pluggable transaction managers, and making it easy to demarcate transactions without dealing with low-level issues.
A JDBC abstraction layer that simplifies error handling and greatly reduces the amount of code you'll need to write.
Integration with TopLink, Hibernate, JDO, and iBATIS SQL Maps , in terms of resource holders, DAO implementation support and transaction strategies.
AOP functionality , fully integrated into Spring configuration management.
A flexible MVC web application framework , highly configurable, accommodates multiple view technologies (JSP, Velocity, etc).
Real world usages
Voca , core systems
Virgin Mobile UK , B2C website
The European Patent Office , publicly accessed system across 25 countries
French Tax Authority , migration of systems built on EJB 2.x
Dekabank (major German domestic bank), multi-channel, mission-critical trading application
Symantec Corp. , technical support case tracking tool
US National Healthcare Provider System , portal providing fee information
JP Morgan Chase
FA Premier League , football
World of Warcraft , gaming
Confluence , enterprise knowledge base/wiki
Alfresco , open-standards content repository
Liferay Portal , open-source portal platform
Banking and finance, high-volume websites, health and pharmaceutical engineering, education, government, media and publishing
What’s new in Spring 2.0
Inversion of Control (IoC) container
Easier XML configuration
New bean scopes
Extensible XML authoring
Aspect Oriented Programming (AOP)
Easier AOP XML configuration
Support for @AspectJ aspects
The Middle Tier
Easier configuration of declarative transactions in XML
Easier JDBC programming
The Web Tier
A form tag library for SpringMVC
Sensible defaulting in SpringMVC
Dynamic language support
Java 5 (Tiger) support
What’s new in Spring 2.1
JCA-based message endpoint management
New "context" and "jms" XML configuration namespaces
JDK 1.6 and Java EE 5 support
Currently M1 (GA in May 2006)
Similar configuration-related projects
a library that enables the use or annotations to configure your application using spring-framework as a backend.
Spring Java Configuration Project
an experiment in producing a Java-based alternative to configuring Spring Application Contexts