The context:component-scan registers the PersonController
, which is defined
in the org.springbyexample.web.servlet.mvc
package. The first import configures the JPA configuration
for managing a person and the second configures Spring MVC.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="org.springbyexample.web.servlet.mvc" /> <!-- Imports the configurations of the different infrastructure systems of the application --> <import resource="data-access-context.xml" /> <import resource="webmvc-context.xml" /> </beans>
This standard Spring MVC configuration file creates handlers, configures Tiles, and also internationalization.
The mvc:annotation-driven element registers a DefaultAnnotationHandlerMapping
and AnnotationMethodHandlerAdapter
. It also sets up type converters and
a Bean Validation (JSR-303) validator (if JSR-303 library is present on the classpath).
The mvc:view-controller element sets an explicit mapping to the static index page.
The tilesConfigurer bean configures tiles and
dynamicTilesViewResolver takes the url of a request and uses it for the body in a Tiles template.
The last three beans configure locale and messsage resource handling. The LocaleChangeInterceptor
is registered
as an interceptor with the default handler by the surrounding mvc:interceptors element.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <mvc:annotation-driven /> <mvc:view-controller path="/index.html" /> <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer" p:definitions="/WEB-INF/tiles-defs/templates.xml" /> <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:viewClass="org.springbyexample.web.servlet.view.tiles2.DynamicTilesView" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" /> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" p:basenames="messages" /> <!-- Declare the Interceptor --> <mvc:interceptors> <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" p:paramName="locale" /> </mvc:interceptors> <!-- Declare the Resolver --> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" /> </beans>