Documentation de Référence Version 1.1.4 (Work in progress) Copyright (c) 2004 - Rod Johnson, Juergen Hoeller, Alef Arendsen, Colin Sampaleanu, Darren Davison, Dmitriy Kopylenko, Thomas Risberg, Mark Pollack Copiesofthisdocumentmaybemadeforyourownuseandfordistributiontoothers,providedthatyoudonot chargeanyfeeforsuchcopiesandfurtherprovidedthateachcopycontainsthisCopyrightNotice,whether distributedinprintorelectronically. Table of Contents Préface ................................................................................................................................................ 1. Introduction .................................................................................................................................. 1.1. Vued'ensemble .................................................................................................................... 1 1.2. Scenariosd'utilisation ........................................................................................................... 2 2. Problématiquedefond .................................................................................................................. 2.1. InversiondeControle/InjectiondeDépendance .................................................................... 5 3. Beans,BeanFactoryetl'ApplicationContext ................................................................................. 3.1. Introduction ......................................................................................................................... 6 3.2. BeanFactoryetBeanDefinitions-lesbases ............................................................................ 6 3.2.1. LaBeanFactory ......................................................................................................... 6 3.2.2. BeanDefinition .......................................................................................................... 7 3.2.3. Laclassedubean....................................................................................................... 8 3.2.4. Lesidentifiantsd'unbean(idet name) .......................................................................................................................... 10 3.2.5. singletonoupassingleton .......................................................................................... 10 3.3. Propriétés,collaborateurs,détectionautomatiqueetvérificationdedépendance ....................... 11 3.3.1. Positionnementdespropriétésdebeansetcollaborateurs ............................................. 11 3.3.2. RésolutiondesArgumentsdeConstructeur ................................................................. 14 3.3.3. Lespropriétésdebeanetlesargumentsdeconstructeurdétaillés .................................. 15 3.3.4. InjectionparMéthode ................................................................................................ 18 3.3.5. Usingdepends-on ...................................................................................................... 20 3.3.6. Autowiringcollaborators............................................................................................ 20 3.3.7. Checkingfordependencies ......................................................................................... 21 3.4. Customizingthenatureofabean ........................................................................................... 22 3.4.1. Lifecycleinterfaces ................................................................................................... 22 3.4.2. Knowingwhoyouare ................................................................................................ 24 3.4.3. FactoryBean .............................................................................................................. 24 3.5. Abstractandchildbeandefinitions ........................................................................................ 24 3.6. InteractingwiththeBeanFactory ........................................................................................... 25 3.6.1. ObtainingaFactoryBean,notitsproduct ..................................................................... 26 3.7. CustomizingbeanswithBeanPostprocessors.......................................................................... 26 3.8. CustomizingbeanfactorieswithBeanFactoryPostprocessors .................................................. 27 3.8.1. ThePropertyPlaceholderConfigurer ............................................................................ 27 3.8.2. ThePropertyOverrideConfigurer ................................................................................ 28 3.9. RegisteringadditionalcustomPropertyEditors ....................................................................... 29 3.10. IntroductiontotheApplicationContext ................................................................................ 29 3.11. Addedfunctionalityofthe ApplicationContext .................................................................................................................. 30 3.11.1. UsingtheMessageSource......................................................................................... 30 3.11.2. Propagatingevents ................................................................................................... 31 3.11.3. UsingresourceswithinSpring .................................................................................. 32 3.12. CustomizedbehaviorintheApplicationContext ................................................................... 33 3.12.1. ApplicationContextAwaremarker interface ........................................................................................................................ 33 3.12.2. TheBeanPostProcessor ............................................................................................ 33 3.12.3. TheBeanFactoryPostProcessor ................................................................................. 33 3.12.4. ThePropertyPlaceholderConfigurer .......................................................................... 33 3.13. RegisteringadditionalcustomPropertyEditors ..................................................................... 34 SpringFrameworkVersion1.1.4 ii Spring-FrameworkApplicatifJava/J2EE 3.14. Settingabeanpropertyorconstructorargfromaproperty expression ............................................................................................................................... 35 3.15. Settingabeanpropertyorconstructorargfromafield value ....................................................................................................................................... 35 3.16. Invokinganothermethodandoptionallyusingthereturn value. ...................................................................................................................................... 36 3.17. ImportingBeanDefinitionsfromOneFileIntoAnother ....................................................... 37 3.18. CreatinganApplicationContextfromawebapplication ........................................................ 38 3.19. Gluecodeandtheevilsingleton .......................................................................................... 38 3.19.1. UsingSingletonBeanFactoryLocatorand ContextSingletonBeanFactoryLocator ............................................................................. 39 4. PropertyEditors,databinding,validationandtheBeanWrapper ................................................. 4.1. Introduction ......................................................................................................................... 40 4.2. BindingdatausingtheDataBinder ........................................................................................ 40 4.3. BeanmanipulationandtheBeanWrapper............................................................................... 40 4.3.1. Settingandgettingbasicandnestedproperties ............................................................ 41 4.3.2. Built-inPropertyEditors,converting types ............................................................................................................................. 42 4.3.3. Otherfeaturesworthmentioning................................................................................. 44 5. SpringAOP:AspectOrientedProgrammingwithSpring ............................................................. 5.1. Concepts .............................................................................................................................. 45 5.1.1. AOPconcepts ........................................................................................................... 45 5.1.2. SpringAOPcapabilitiesandgoals .............................................................................. 46 5.1.3. AOPProxiesinSpring ............................................................................................... 47 5.2. PointcutsinSpring ............................................................................................................... 47 5.2.1. Concepts ................................................................................................................... 48 5.2.2. Operationsonpointcuts ............................................................................................. 48 5.2.3. Conveniencepointcutimplementations ....................................................................... 49 5.2.4. Pointcutsuperclasses ................................................................................................. 50 5.2.5. Custompointcuts ....................................................................................................... 50 5.3. AdvicetypesinSpring.......................................................................................................... 51 5.3.1. Advicelifecycles ....................................................................................................... 51 5.3.2. AdvicetypesinSpring ............................................................................................... 51 5.4. AdvisorsinSpring................................................................................................................ 56 5.5. UsingtheProxyFactoryBeantocreateAOPproxies ............................................................... 56 5.5.1. Basics ....................................................................................................................... 56 5.5.2. JavaBeanproperties ................................................................................................... 57 5.5.3. Proxyinginterfaces .................................................................................................... 57 5.5.4. Proxyingclasses ........................................................................................................ 59 5.6. Convenientproxycreation .................................................................................................... 59 5.6.1. TransactionProxyFactoryBean .................................................................................... 60 5.6.2. EJBproxies ............................................................................................................... 61 5.7. Conciseproxydefinitions ..................................................................................................... 61 5.8. CreatingAOPproxiesprogrammaticallywiththeProxyFactory .............................................. 62 5.9. Manipulatingadvisedobjects ................................................................................................ 62 5.10. Usingthe"autoproxy"facility ............................................................................................. 64 5.10.1. Autoproxybeandefinitions ...................................................................................... 64 5.10.2. Usingmetadata-drivenauto-proxying ....................................................................... 66 5.11. UsingTargetSources........................................................................................................... 67 5.11.1. Hotswappabletargetsources .................................................................................... 68 5.11.2. Poolingtargetsources .............................................................................................. 68 5.11.3. Prototype"targetsources .......................................................................................... 70 SpringFrameworkVersion1.1.4 iii Spring-FrameworkApplicatifJava/J2EE 5.12. DefiningnewAdvicetypes ................................................................................................. 70 5.13. Furtherreadingandresources .............................................................................................. 70 5.14. Roadmap ........................................................................................................................... 71 6. Intégrationd'AspectJ .................................................................................................................... 6.1. Vued'ensemble .................................................................................................................... 72 6.2. Configurationdesaspectsd'AspectJenutilisantleconteneurIoCdeSpring ............................. 72 6.2.1. "Singleton"aspects .................................................................................................... 72 6.2.2. Non-singletonaspects ................................................................................................ 73 6.2.3. Gotchas .................................................................................................................... 73 6.3. UsingAspectJpointcutstotargetSpringadvice ..................................................................... 73 6.4. SpringaspectsforAspectJ .................................................................................................... 74 7. Transactionmanagement .............................................................................................................. 7.1. TheSpringtransactionabstraction ......................................................................................... 75 7.2. Transactionstrategies ........................................................................................................... 76 7.3. Programmatictransactionmanagement .................................................................................. 79 7.3.1. UsingtheTransactionTemplate .................................................................................. 79 7.3.2. UsingthePlatformTransactionManager ...................................................................... 79 7.4. Declarativetransactionmanagement ...................................................................................... 80 7.4.1. BeanNameAutoProxyCreator, anotherdeclarativeapproach ........................................................................................... 82 7.5. Choosingbetweenprogrammaticanddeclarativetransaction management ............................................................................................................................ 83 7.6. Doyouneedanapplicationserverfortransaction management?........................................................................................................................... 83 7.7. Commonproblems ............................................................................................................... 84 8. SourceLevelMetadataSupport .................................................................................................... 8.1. Source-levelmetadata........................................................................................................... 85 8.2. Spring'smetadatasupport ..................................................................................................... 86 8.3. IntegrationwithJakartaCommonsAttributes ......................................................................... 87 8.4. MetadataandSpringAOPautoproxying ................................................................................ 88 8.4.1. Fundamentals ............................................................................................................ 88 8.4.2. Declarativetransactionmanagement ........................................................................... 89 8.4.3. Pooling ..................................................................................................................... 89 8.4.4. Custommetadata ....................................................................................................... 90 8.5. UsingattributestominimizeMVCwebtierconfiguration ....................................................... 91 8.6. Otherusesofmetadataattributes ........................................................................................... 93 8.7. AddingsupportforadditionalmetadataAPIs ......................................................................... 93 9. DAOsupport ................................................................................................................................. 9.1. Introduction ......................................................................................................................... 95 9.2. ConsistentExceptionHierarchy ............................................................................................ 95 9.3. ConsistentAbstractClassesforDAOSupport ........................................................................ 96 10. DataAccessusingJDBC.............................................................................................................. 10.1. Introduction ....................................................................................................................... 97 10.2. UsingtheJDBCCoreclassestocontrolbasicJDBCprocessingand errorhandling .......................................................................................................................... 97 10.2.1. JdbcTemplate .......................................................................................................... 97 10.2.2. DataSource.............................................................................................................. 98 10.2.3. SQLExceptionTranslator .......................................................................................... 98 10.2.4. ExecutingStatements ............................................................................................... 99 10.2.5. RunningQueries ...................................................................................................... 99 10.2.6. Updatingthedatabase .............................................................................................. 100 10.3. Controllinghowweconnecttothedatabase ......................................................................... 101 SpringFrameworkVersion1.1.4 iv Spring-FrameworkApplicatifJava/J2EE 10.3.1. DataSourceUtils ...................................................................................................... 101 10.3.2. SmartDataSource ..................................................................................................... 101 10.3.3. AbstractDataSource ................................................................................................. 101 10.3.4. SingleConnectionDataSource ................................................................................... 101 10.3.5. DriverManagerDataSource ....................................................................................... 101 10.3.6. DataSourceTransactionManager ............................................................................... 102 10.4. ModelingJDBCoperationsasJavaobjects .......................................................................... 102 10.4.1. SqlQuery ................................................................................................................. 102 10.4.2. MappingSqlQuery ................................................................................................... 102 10.4.3. SqlUpdate ............................................................................................................... 103 10.4.4. StoredProcedure ...................................................................................................... 104 10.4.5. SqlFunction ............................................................................................................. 105 11. DataAccessusingO/RMappers .................................................................................................. 11.1. Introduction ....................................................................................................................... 106 11.2. Hibernate ........................................................................................................................... 107 11.2.1. ResourceManagement ............................................................................................. 107 11.2.2. ResourceDefinitionsinanApplicationContext ......................................................... 107 11.2.3. InversionofControl:TemplateandCallback ............................................................. 108 11.2.4. ApplyinganAOPInterceptorInsteadofaTemplate .................................................. 109 11.2.5. ProgrammaticTransactionDemarcation .................................................................... 110 11.2.6. DeclarativeTransactionDemarcation ........................................................................ 111 11.2.7. TransactionManagementStrategies .......................................................................... 113 11.2.8. ContainerResourcesversusLocalResources ............................................................. 114 11.2.9. Samples .................................................................................................................. 115 11.3. JDO ................................................................................................................................... 115 11.4. iBATIS .............................................................................................................................. 115 11.4.1. Overviewanddifferencesbetween1.3.xand2.0 ........................................................ 115 11.4.2. SettinguptheSqlMap .............................................................................................. 116 11.4.3. UsingSqlMapDaoSupport ........................................................................................ 117 11.4.4. Transactionmanagement .......................................................................................... 117 12. Webframework .......................................................................................................................... 12.1. Introductiontothewebframework ...................................................................................... 118 12.1.1. PluggabilityofMVCimplementation........................................................................ 118 12.1.2. FeaturesofSpringMVC .......................................................................................... 119 12.2. TheDispatcherServlet......................................................................................................... 119 12.3. Controllers ......................................................................................................................... 121 12.3.1. AbstractControllerandWebContentGenerator ........................................................... 122 12.3.2. Othersimplecontrollers ........................................................................................... 123 12.3.3. TheMultiActionController ....................................................................................... 123 12.3.4. CommandControllers ............................................................................................... 125 12.4. Handlermappings .............................................................................................................. 125 12.4.1. BeanNameUrlHandlerMapping ................................................................................ 126 12.4.2. SimpleUrlHandlerMapping ...................................................................................... 127 12.4.3. AddingHandlerInterceptors ..................................................................................... 127 12.5. Viewsandresolvingthem ................................................................................................... 129 12.5.1. ViewResolvers ........................................................................................................ 129 12.6. Usinglocales...................................................................................................................... 130 12.6.1. AcceptHeaderLocaleResolver ................................................................................... 130 12.6.2. CookieLocaleResolver ............................................................................................. 130 12.6.3. SessionLocaleResolver ............................................................................................ 131 12.6.4. LocaleChangeInterceptor ......................................................................................... 131 12.7. Usingthemes ..................................................................................................................... 131 SpringFrameworkVersion1.1.4 v Spring-FrameworkApplicatifJava/J2EE 12.8. Spring'smultipart(fileupload)support ................................................................................. 131 12.8.1. Introduction............................................................................................................. 131 12.8.2. UsingtheMultipartResolver ..................................................................................... 132 12.8.3. Handlingafileuploadinaform ................................................................................ 132 12.9. Handlingexceptions ........................................................................................................... 134 12.10. Commonlyusedutilities.................................................................................................... 134 12.10.1. Alittlestoryaboutthepathmatcher ......................................................................... 134 13. Integratingviewtechnologies ...................................................................................................... 13.1. Introduction ....................................................................................................................... 135 13.2. JSP&JSTL ....................................................................................................................... 135 13.2.1. Viewresolvers......................................................................................................... 135 13.2.2. 'Plain-old'JSPsversusJSTL ..................................................................................... 135 13.2.3. Additionaltagsfacilitatingdevelopment ................................................................... 136 13.3. Tiles .................................................................................................................................. 136 13.3.1. Dependencies .......................................................................................................... 136 13.3.2. HowtointegrateTiles .............................................................................................. 136 13.4. Velocity&FreeMarker ....................................................................................................... 137 13.4.1. Dependencies .......................................................................................................... 137 13.4.2. Contextconfiguration .............................................................................................. 138 13.4.3. Creatingtemplates ................................................................................................... 138 13.4.4. Advancedconfiguration ........................................................................................... 139 13.4.5. Bindsupportandformhandling ................................................................................ 140 13.5. XSLT ................................................................................................................................ 145 13.5.1. MyFirstWords ....................................................................................................... 145 13.5.2. Summary ................................................................................................................ 147 13.6. Documentviews(PDF/Excel) ............................................................................................. 148 13.6.1. Introduction............................................................................................................. 148 13.6.2. Configurationandsetup ........................................................................................... 148 13.7. Tapestry ............................................................................................................................. 150 13.7.1. Architecture ............................................................................................................ 150 13.7.2. Implementation ....................................................................................................... 151 13.7.3. Summary ................................................................................................................ 156 13.8. JasperReports ..................................................................................................................... 156 13.8.1. Dependencies .......................................................................................................... 156 13.8.2. Configuration .......................................................................................................... 157 13.8.3. PopulatingtheModelAndView ................................................................................. 158 14. JMS ............................................................................................................................................. 14.1. Introduction ....................................................................................................................... 160 14.2. Unificationdesdomaines .................................................................................................... 160 14.3. JmsTemplate ...................................................................................................................... 160 14.3.1. ConnectionFactory................................................................................................... 161 14.3.2. Gestiondestransactions ........................................................................................... 161 14.3.3. Gestiondesdestinations ........................................................................................... 162 14.4. UtilisationdeJmsTemplate ................................................................................................. 163 14.4.1. Envoid'unmessage ................................................................................................. 163 14.4.2. Réceptionsynchrone ................................................................................................ 164 14.4.3. UtilisationdesMessageConverters ........................................................................... 164 14.4.4. SessionCallbacketProducerCallback ........................................................................ 165 15. AccessingandimplementingEJBs .............................................................................................. 15.1. AccessingEJBs .................................................................................................................. 166 15.1.1. Concepts ................................................................................................................. 166 15.1.2. AccessinglocalSLSBs ............................................................................................ 166 SpringFrameworkVersion1.1.4 vi Spring-FrameworkApplicatifJava/J2EE 15.1.3. AccessingremoteSLSBs ......................................................................................... 168 15.2. UsingSpringconvenienceEJBimplementationclasses ......................................................... 168 16. RemotingandwebservicesusingSpring ..................................................................................... 16.1. Introduction ....................................................................................................................... 171 16.2. ExposingservicesusingRMI .............................................................................................. 172 16.2.1. ExportingtheserviceusingtheRmiServiceExporter .................................................. 172 16.2.2. Linkingintheserviceattheclient............................................................................. 172 16.3. UsingHessianorBurlaptoremotelycallservicesviaHTTP ................................................. 173 16.3.1. WiringuptheDispatcherServletforHessian ............................................................. 173 16.3.2. ExposingyourbeansbyusingtheHessianServiceExporter ......................................... 173 16.3.3. Linkingintheserviceontheclient............................................................................ 174 16.3.4. UsingBurlap ........................................................................................................... 174 16.3.5. ApplyingHTTPbasicauthenticationtoaserviceexposedthroughHessianorBurlap ............................................................................................................................................ 174 16.4. ExposingservicesusingHTTPinvokers .............................................................................. 175 16.4.1. Exposingtheserviceobject ...................................................................................... 175 16.4.2. Linkingintheserviceattheclient............................................................................. 175 16.5. Considerationswhenchoosingatechnology ......................................................................... 176 17. SendingEmailwithSpringmailabstractionlayer....................................................................... 17.1. Introduction ....................................................................................................................... 177 17.2. Springmailabstractionstructure ......................................................................................... 177 17.3. UsingSpringmailabstraction.............................................................................................. 178 17.3.1. PluggableMailSenderimplementations ..................................................................... 180 17.4. UsingtheJavaMailMimeMessageHelper ............................................................................ 180 17.4.1. CreatingasimpleMimeMessageandsendingit ......................................................... 180 17.4.2. Sendingattachmentsandinlineresources .................................................................. 181 18. SchedulingjobsusingQuartzorTimer ....................................................................................... 18.1. Introduction ....................................................................................................................... 182 18.2. UsingtheOpenSymphonyQuartzScheduler ........................................................................ 182 18.2.1. UsingtheJobDetailBean .......................................................................................... 182 18.2.2. UsingtheMethodInvokingJobDetailFactoryBean ...................................................... 183 18.2.3. WiringupjobsusingtriggersandtheSchedulerFactoryBean ...................................... 184 18.3. UsingJDKTimersupport ................................................................................................... 184 18.3.1. Creatingcustomtimers ............................................................................................ 185 18.3.2. UsingtheMethodInvokingTimerTaskFactoryBean .................................................... 185 18.3.3. Wrappingup:settingupthetasksusingtheTimerFactoryBean ................................... 186 A. Spring'sbeans.dtd .......................................................................................................................... SpringFrameworkVersion1.1.4 vii Préface Développerdesapplicationsestsuffisamentdurmêmeavecdebonsoutilsetdebonnestechnologies. Implémenterdesapplicationsenutilisantdesplatformesquipromettenttout,peuts'avérerlourd,difficileà contrôleretpastrèsefficacedurantlescyclesdedéveloppement,peutdeveniruncauchemar.Springfournit unesolutionlégèrepourconstruiredesapplicationsprêtesàl'emploipourlesentreprisestoutensupportant encorelapossibilitéd'utiliserlagestiondestransactionsdéclaratives,l'accèsdistantàlalogiqueapplicativeen utilisantRMIoulesservicesweb,lesfacilitéspourlamessagerieetdespossibilitésvariéespourpersistervos donnéesenbase.SpringfournitunframeworkMVC,desmanièrestransparentespourintégrerl'AOPdansvos applicationsetunehiérarchied'exceptionsbienstructuréeincluantunmappageautomatiqueàpartirdes hiérarchiesd'exceptionspropriétaires. Springpeutêtrepotentiellementunesolutionglobalepourtouteslesapplicationsd'entreprises,cependant, Springestmodulaire,permettantainsid'utiliserdespartiessansavoiràapporterlereste.Vouspouvezutiliser leconteneurdebeans,avecStrutspardessus,maisvouspouvezégalementchoisirden'utiliserquel'intégration avecHibernateoulacouched'abstractionJDBC.Springn'estpasintrusif,cequisignifiequ'iln'yaaucune dépendancevis-à-visduframeworkouqu'ellessontréduitesauminimumnécessairesuivantl'utilisation. CedocumentfournitunguidederéférencepourlesmécanismesdeSpring.Puisquecedocumentestencoreun travailencoursderéalisation,sivousavezdesdemandesoudescommentaires,veuillezlespostersurleslistes dediffusionouleforumsurlapageduprojetsurSourceforge:http://www.sf.net/projects/springframework Avantdepoursuivre,quelquesmotsdegratitude:ChrisBauer(del'équiped'Hibernate)apréparéetadapté l'applicationDocBook-XSLpourpermettrelacréationdumanuelderéférenced'Hibernateetnouspermettant égalementdecréerlenotre. SpringFrameworkVersion1.1.4 viii Chapter 1. Introduction 1.1. Vue d'ensemble Springcontientungrandnombredefonctionnalitésetdedispositifs,quisontbienorganisésdansseptmodules commedécritsurlediagrammesuivant.Cettesectiondécritchaquemoduleàtourderôle. Vued'ensembleduframeworkSpring LepackageCoreestlapartielaplusfondamentaleduframeworketfournitlafonctionnalitéInjectionde Dépendance,vouspermettantdegérerleconteneurdebeans.LeconceptdebaseiciestlaBeanFactoryqui fournituneimplémentationdypatternfabriquetoutensupprimantlanécessitédeprogrammerdessingletonset permettentdedécouplerlaconfigurationetlaspécificationdesdépendancesdelalogiqueapplicative elle-même. AusommetdupackageCoresetrouvelepackageContext,fournissantunmoyend'accéderauxbeansàla manièred'unframeworkressemblantàunregistreJNDI.Lepackagecontexthéritedesfonctionnalitésdu packagebeansetajoutelesupportdesmessages(i.e."resourcebundles"),lapropagationd'événements,le chargementdesressourcesetlacréationtransparentedecontextes,parexemple,parunconteneurdeservlets. LepackageDAOfournitunniveaud'abstractionàJDBCquisupprimelebesoindecodeJDBCpénibleetde gérerlescodeserreursspécifiquesauxbasesdedonnées.Deplus,lepackageJDBCfournitunmoyendegérer lestransactionsdemanièredéclarativeouparlaprogrammationpasseulementpourlesclassesimplémentant desinterfacesspécifiquesmaispourtouslesPOJOs(plainoldjavaobjects). LepackageORMfournitdesniveauxd'abstractionpourl'intégrationdesoutilspopulairesdemappage objet-relationnelcommeJDO,HibernateetiBatis.EnutilisantlepackageORM,vouspouvezutilisertousces outilsencombinaisondetouteslesautresfonctionnalitésqu'offreSpring,commenotammentlagestion déclarativedestransactionsmentionnéeprécédemment. LepackageAOPdeSpringfournituneimplémentationdelaprogrammationorientéeaspectconformeàAOP Alliancequipermetparexemple,dedéfinirdesintercepteursdeméthodesetdespointsdejonctionen découplantproprementlecodefonctionnelquidevraitêtrebienséparé.Enutilisantlesannotationsauniveau SpringFrameworkVersion1.1.4 1 Introduction dessources,ilestpossibled'intégrertoutesorted'informationsdanslecode,unpeucommeaveclesattributs .Net. LepackageWebdeSpringfournitdesfonctionnalitésd'intégrationdebasepourlesapplicationswebcommela gestiondesrequêtesmultipart,l'initialisationdescontextesenutilisantleslistenersdesservletsetuncontexte d'applicationorientéweb.PourutiliserSpringavecWebWorkouStruts,ilestindispensabled'intégrerce package. LepackageWebMVCdeSpringfournituneimplémentationModel-View-Controllerpourlesapplicationsweb. SpringMVCn'estpasuneimplémentationcommelesautres,carellefournituneséparationnetteentrelecode dumodèleetlesformulaireswebetpermetd'utilisertouteslesautresfonctionnalitésduframeworkSpring commelavalidation. 1.2. Scenarios d'utilisation Aveclesmodulesdécritsci-dessus,ilestpossibled'utiliserSpringdanstoutesortedescénariosallantdes appletsauxapplicationsd'entreprisecomplexesutilisantlafonctionnalitédegestiondestransactiondeSpring etleframeworkweb. ApplicationwebtypiquebaséesurSpring UneapplicationwebtypiqueutiliselaplupartdesfonctionnalitésdeSpring.Enutilisant TransactionProxyFactoryBeans,l'applicationwebestcomplètementtransactionnellecommeellel'auraitété enutilisantlestransactionsgéréesparleconteneurdesEJBs.Toutelalogiquemétierpeutêtreimplémentéeen utilisantdesPOJOssimplesgérésparleconteneurd'InjectiondeDépendancedeSpring.Desservices additionnelscommel'envoidemessagesetlavalidation,indépendantedelacoucheweb,permettentdechoisir quandexécuterlesrèglesdevalidation.LesupportdeSpringpourlesORMsestintégréavecHibernate,JDO, iBatis.Enutilisant,parexemple,HibernateDaoSupport,ilestpossiblederéutiliservosmappagesexistants. Lescontroleursdeformulairess'intègrentdemanièretransparentesdanslacouchewebaveclemodèle, supprimantdecefaitlebesoind'ActionFormsoud'autresclassestransformantlesparamètresHTTPenvaleurs disponiblespourlemodèle. SpringFrameworkVersion1.1.4 2
Description: