Vous êtes sur la page 1sur 22

Spring MVC

Introduction

Spring MVC
peter.maas@finalist.com ☄ maas-frensch.com/peter/

Peter Maas ~ Works at Finalist IT


Group. 70% Developer, 20%
Architect and 10% CTO Board.
Techniques used daily include Java/
JEE, Spring, Hiber nate, JSP.
Passionate about scripting language
for the JVM like Groovy and JRuby.

Spring MVC
Introduction to Spring MVC & Web Flow

Spring MVC
Spring

Spring ~ A Layered Java/JEE


application framework. The most
complete lightweight container,
providing centralized, automated
configuration and wiring of your
application objects.

Spring MVC
Why Spring (I)

Key reasons

To provide a non-invasive programming model. As far as


possible, application code should be decoupled from the
framework.

To provide a superior solution to in-house infrastructure,


so that developers can focus on delivering business value
rather than solving generic problems.

To make developing enterprise applications as simple as


possible, but enhancing, rather than sacrificing, power.

Spring MVC
Why Spring (II)

Spring MVC
Spring basics

<bean id="myRespository" class="com.finalist.MyRepositoryImpl"/>


<bean id="myService" class="com.finalist.MyServiceImpl">
<property name="maxResults" value="10"/>
<property name="myRespository" ref="myRespository"/>
</bean>

Equals

myRepository = new MyRepositoryImpl();


myService = new MyServiceImpl();

myService.setMyRepository(myRepository);
myService.setMaxResults(10);

Spring MVC
Spring basics (II)

<bean id="myRespository" class="com.finalist.MyRepositoryImpl"/>


<bean id="myService" class="com.finalist.MyServiceImpl">
<constructor-arg index="0" value="10"/>
<constructor-arg index="1" ref="myRespository"/>
</bean>

Equals

myRepository = new MyRepositoryImpl();


myService = new MyServiceImpl(10, myRepository);

Spring MVC
Demo I

Demo I ~ Basics of Spring

Spring MVC
Typical SpringMVC Architecture

Spring MVC territory

Business logic
User Interface

Web
Domain
Model Connections to exernal
systems (database,
Services
webservices)

Integration

Spring MVC
MVC

Controller

request

Model

Actor
response

View

Spring MVC
Controller

Controller ~ Controllers interpret


user input and transform such input
into a sensible model which will be
represented to the user by the view.

Spring MVC
Controller Interface

If you find yourself


implementing the
controller interface
you're probable doing
public interface Controller { stuff the hard way!

/**
* Process the request and return a
* ModelAndView object which the DispatcherServlet
* will render.
*/
ModelAndView handleRequest(
HttpServletRequest request,
HttpServletResponse response) throws Exception;

Spring MVC
Controllers

«interface»
UrlFilenameViewController
Controller

ParameterizableViewController AbstractController MultiActionController

BaseCommandController AbstractCommandController

SimpleFormController AbstractFormController AbstractWizardFormController

Spring MVC
Model

M o d e l ~ T h e d o m a i n - s p e c i fi c
representation of the information on
which the application operates.
List<SearchResult> results =
new ArrayList<SearchResult>();

model.addObject("searchResults", results);

List<SearchResult> r =
(List<SearchResult>)model.get("searchResults");

Spring MVC
View

View ~ Renders the model into a


for m suitable for interaction,
typically a user interface element.
Multiple views can exist for a single
model for different purposes.

Spring MVC
Views
view

AbstractExcelView AbstractView RedirectView JstlView

AbstractPDFView InternalResourceView TilesView TilesJstlView


AbstractUrlB
asedView

AbstractJExcelView AbstractJasperReportsView ...

AbstractExcelView AbstractTemplateView ...

AbstractXsltView

Spring MVC
Handlers

Handlers ~ map incoming web requests to appropriate handlers.


<bean id="handlerMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

or

<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/hello" value-ref="helloworldController" />
</map>
</property>
</bean>

Spring MVC
Demo II

Demo II ~ Putting it all to work,


making a simple "Hello World"
Spring MVC application.

Spring MVC
Demo II ~ Classpath essentials

spring-webmvc.jar
commons-logging.jar
logkit.jar
spring-beans.jar
spring-context.jar
aopalliance.jar
spring-core.jar
spring-support.jar
spring-web.jar
log4j.jar

Spring MVC
More to come ~ Complex forms,
Binding, Validation, Interceptors,
Inter nationalisation, Webflow,
Ajax ...

Spring MVC
internet

Firewall &
Loadbalancer

Multicast / RMI Cache replication

Application servers (web) Backoffice &


cron jobs REST (https) internet

REST (https)

signon.vpro.nl
SOAP (http)

XML belbios
JDBC JDBC LDAP

Database cluster Active NFS 3rd party systems


Directory (NEBO/DONNA)

MMBase
scp

Spring MVC

Vous aimerez peut-être aussi