08/01/2017 SpringFrameworkReferenceDocumentation
http://docs.spring.io/spring/docs/current/springframeworkreference/htmlsingle/ 1/645
SpringFrameworkReferenceDocumentation
AuthorsRodJohnson,JuergenHoeller,KeithDonald,ColinSampaleanu,RobHarrop,ThomasRisberg,AlefArendsen,DarrenDavison,DmitriyKopylenko,MarkPollack,ThierryTemplier,ErwinVervaet,PortiaTung,BenHale,AdrianColyer,JohnLewis,CostinLeau,MarkFisher,SamBrannen,RamnivasLaddad,ArjenPoutsma,ChrisBeams,TareqAbedrabbo,AndyClement,DaveSyer,OliverGierke,RossenStoyanchev,PhillipWebb,RobWinch,BrianClozel,StephaneNicoll,SebastienDeleuze
4.3.5.RELEASE
Copyright20042016Copiesofthisdocumentmaybemadeforyourownuseandfordistributiontoothers,providedthatyoudonotchargeanyfeeforsuchcopiesandfurtherprovidedthateachcopycontainsthisCopyrightNotice,whetherdistributedinprintorelectronically.
TableofContents
I.OverviewofSpringFramework1.GettingStartedwithSpring
2.IntroductiontotheSpringFramework2.1.DependencyInjectionandInversionofControl2.2.Modules
2.2.1.CoreContainer2.2.2.AOPandInstrumentation2.2.3.Messaging2.2.4.DataAccess/Integration2.2.5.Web2.2.6.Test
2.3.Usagescenarios2.3.1.DependencyManagementandNamingConventions
SpringDependenciesandDependingonSpringMavenDependencyManagementMaven"BillOfMaterials"DependencyGradleDependencyManagementIvyDependencyManagementDistributionZipFiles
2.3.2.LoggingNotUsingCommonsLoggingUsingSLF4JUsingLog4J
II.WhatsNewinSpringFramework4.x3.NewFeaturesandEnhancementsinSpringFramework4.0
3.1.ImprovedGettingStartedExperience3.2.RemovedDeprecatedPackagesandMethods3.3.Java8(aswellas6and7)3.4.JavaEE6and73.5.GroovyBeanDefinitionDSL3.6.CoreContainerImprovements3.7.GeneralWebImprovements3.8.WebSocket,SockJS,andSTOMPMessaging3.9.TestingImprovements
4.NewFeaturesandEnhancementsinSpringFramework4.1
08/01/2017 SpringFrameworkReferenceDocumentation
http://docs.spring.io/spring/docs/current/springframeworkreference/htmlsingle/ 2/645
4.1.JMSImprovements4.2.CachingImprovements4.3.WebImprovements4.4.WebSocketMessagingImprovements4.5.TestingImprovements
5.NewFeaturesandEnhancementsinSpringFramework4.25.1.CoreContainerImprovements5.2.DataAccessImprovements5.3.JMSImprovements5.4.WebImprovements5.5.WebSocketMessagingImprovements5.6.TestingImprovements
6.NewFeaturesandEnhancementsinSpringFramework4.36.1.CoreContainerImprovements6.2.DataAccessImprovements6.3.CachingImprovements6.4.JMSImprovements6.5.WebImprovements6.6.WebSocketMessagingImprovements6.7.TestingImprovements6.8.Supportfornewlibraryandservergenerations
III.CoreTechnologies7.TheIoCcontainer
7.1.IntroductiontotheSpringIoCcontainerandbeans7.2.Containeroverview
7.2.1.Configurationmetadata7.2.2.Instantiatingacontainer
ComposingXMLbasedconfigurationmetadata7.2.3.Usingthecontainer
7.3.Beanoverview7.3.1.Namingbeans
Aliasingabeanoutsidethebeandefinition7.3.2.Instantiatingbeans
InstantiationwithaconstructorInstantiationwithastaticfactorymethodInstantiationusinganinstancefactorymethod
7.4.Dependencies7.4.1.DependencyInjection
ConstructorbaseddependencyinjectionSetterbaseddependencyinjectionDependencyresolutionprocessExamplesofdependencyinjection
7.4.2.DependenciesandconfigurationindetailStraightvalues(primitives,Strings,andsoon)Referencestootherbeans(collaborators)InnerbeansCollectionsNullandemptystringvaluesXMLshortcutwiththepnamespaceXMLshortcutwiththecnamespaceCompoundpropertynames
7.4.3.Usingdependson7.4.4.Lazyinitializedbeans7.4.5.Autowiringcollaborators
LimitationsanddisadvantagesofautowiringExcludingabeanfromautowiring
08/01/2017 SpringFrameworkReferenceDocumentation
http://docs.spring.io/spring/docs/current/springframeworkreference/htmlsingle/ 3/645
7.4.6.MethodinjectionLookupmethodinjectionArbitrarymethodreplacement
7.5.Beanscopes7.5.1.Thesingletonscope7.5.2.Theprototypescope7.5.3.Singletonbeanswithprototypebeandependencies7.5.4.Request,session,globalsession,application,andWebSocketscopes
InitialwebconfigurationRequestscopeSessionscopeGlobalsessionscopeApplicationscopeScopedbeansasdependencies
7.5.5.CustomscopesCreatingacustomscopeUsingacustomscope
7.6.Customizingthenatureofabean7.6.1.Lifecyclecallbacks
InitializationcallbacksDestructioncallbacksDefaultinitializationanddestroymethodsCombininglifecyclemechanismsStartupandshutdowncallbacksShuttingdowntheSpringIoCcontainergracefullyinnonwebapplications
7.6.2.ApplicationContextAwareandBeanNameAware7.6.3.OtherAwareinterfaces
7.7.Beandefinitioninheritance7.8.ContainerExtensionPoints
7.8.1.CustomizingbeansusingaBeanPostProcessorExample:HelloWorld,BeanPostProcessorstyleExample:TheRequiredAnnotationBeanPostProcessor
7.8.2.CustomizingconfigurationmetadatawithaBeanFactoryPostProcessorExample:theClassnamesubstitutionPropertyPlaceholderConfigurerExample:thePropertyOverrideConfigurer
7.8.3.CustomizinginstantiationlogicwithaFactoryBean
[email protected][email protected]@Primary7.9.4.Finetuningannotationbasedautowiringwithqualifiers7.9.5.Usinggenericsasautowiringqualifiers7.9.6.CustomAutowireConfigurer7.9.7.@Resource7.9.8.@PostConstructand@PreDestroy
7.10.Classpathscanningandmanagedcomponents7.10.1.@Componentandfurtherstereotypeannotations7.10.2.Metaannotations7.10.3.Automaticallydetectingclassesandregisteringbeandefinitions7.10.4.Usingfilterstocustomizescanning7.10.5.Definingbeanmetadatawithincomponents7.10.6.Namingautodetectedcomponents7.10.7.Providingascopeforautodetectedcomponents7.10.8.Providingqualifiermetadatawithannotations
7.11.UsingJSR330StandardAnnotations7.11.1.DependencyInjectionwith@[email protected].@Namedand@ManagedBean:standardequivalentstothe@Componentannotation7.11.3.LimitationsofJSR330standardannotations
7.12.Javabasedcontainerconfiguration7.12.1.Basicconcepts:@Beanand@Configuration7.12.2.InstantiatingtheSpringcontainerusingAnnotationConfigApplicationContext
SimpleconstructionBuildingthecontainerprogrammaticallyusingregister(Class)Enablingcomponentscanningwithscan(String)SupportforwebapplicationswithAnnotationConfigWebApplicationContext
7.12.3.Usingthe@BeanannotationDeclaringabeanBeandependenciesReceivinglifecyclecallbacksSpecifyingbeanscopeCustomizingbeannamingBeanaliasing
08/01/2017 SpringFrameworkReferenceDocumentation
http://docs.spring.io/spring/docs/current/springframeworkreference/htmlsingle/ 4/645
Beandescription7.12.4.Usingthe@Configurationannotation
InjectinginterbeandependenciesLookupmethodinjectionFurtherinformationabouthowJavabasedconfigurationworksinternally
7.12.5.ComposingJavabasedconfigurationsUsingthe@ImportannotationConditionallyinclude@Configurationclassesor@BeanmethodsCombiningJavaandXMLconfiguration
7.13.Environmentabstraction7.13.1.Beandefinitionprofiles
@Profile7.13.2.XMLbeandefinitionprofiles
ActivatingaprofileDefaultprofile
7.13.3.PropertySourceabstraction7.13.4.@PropertySource7.13.5.Placeholderresolutioninstatements
7.14.RegisteringaLoadTimeWeaver7.15.AdditionalCapabilitiesoftheApplicationContext
7.15.1.InternationalizationusingMessageSource7.15.2.StandardandCustomEvents
AnnotationbasedEventListenersAsynchronousListenersOrderingListenersGenericEvents
7.15.3.Convenientaccesstolowlevelresources7.15.4.ConvenientApplicationContextinstantiationforwebapplications7.15.5.DeployingaSpringApplicationContextasaJavaEERARfile
7.16.TheBeanFactory7.16.1.BeanFactoryorApplicationContext?7.16.2.Gluecodeandtheevilsingleton
8.Resources8.1.Introduction8.2.TheResourceinterface8.3.BuiltinResourceimplementations
8.3.1.UrlResource8.3.2.ClassPathResource8.3.3.FileSystemResource8.3.4.ServletContextResource8.3.5.InputStreamResource8.3.6.ByteArrayResource
8.4.TheResourceLoader8.5.TheResourceLoaderAwareinterface8.6.Resourcesasdependencies8.7.ApplicationcontextsandResourcepaths
8.7.1.ConstructingapplicationcontextsConstructingClassPathXmlApplicationContextinstancesshortcuts
8.7.2.WildcardsinapplicationcontextconstructorresourcepathsAntstylePatternsTheClasspath*:portabilityclasspath*:prefixOthernotesrelatingtowildcards
8.7.3.FileSystemResourcecaveats
9.Validation,DataBinding,andTypeConversion9.1.Introduction9.2.ValidationusingSpringsValidatorinterface9.3.Resolvingcodestoerrormessages9.4.BeanmanipulationandtheBeanWrapper
9.4.1.Settingandgettingbasicandnestedproperties9.4.2.BuiltinPropertyEditorimplementations
RegisteringadditionalcustomPropertyEditors
9.5.SpringTypeConversion9.5.1.ConverterSPI9.5.2.ConverterFactory
08/01/2017 SpringFrameworkReferenceDocumentation
http://docs.spring.io/spring/docs/current/springframeworkreference/htmlsingle/ 5/645
9.5.3.GenericConverterConditionalGenericConverter
9.5.4.ConversionServiceAPI9.5.5.ConfiguringaConversionService9.5.6.UsingaConversionServiceprogrammatically
9.6.SpringFieldFormatting9.6.1.FormatterSPI9.6.2.AnnotationdrivenFormatting
FormatAnnotationAPI9.6.3.FormatterRegistrySPI9.6.4.FormatterRegistrarSPI9.6.5.ConfiguringFormattinginSpringMVC
9.7.Configuringaglobaldate&timeformat9.8.SpringValidation
9.8.1.OverviewoftheJSR303BeanValidationAPI9.8.2.ConfiguringaBeanValidationProvider
InjectingaValidatorConfiguringCustomConstraintsSpringdrivenMethodValidationAdditionalConfigurationOptions
9.8.3.ConfiguringaDataBinder9.8.4.SpringMVC3Validation
10.SpringExpressionLanguage(SpEL)10.1.Introduction10.2.FeatureOverview10.3.ExpressionEvaluationusingSpringsExpressionInterface
10.3.1.TheEvaluationContextinterfaceTypeConversion
10.3.2.Parserconfiguration10.3.3.SpELcompilation
CompilerconfigurationCompilerlimitations
10.4.Expressionsupportfordefiningbeandefinitions10.4.1.XMLba