SpringMVC的簡潔配置步驟

首先,我個人習慣將SpringMVC的配置文件命名爲spring-mvc.xml,下面都會使用該命名。
以下是常用的配置:

一、在web.xml中,配置springmvc的前端控制器DispatcherServlet

<!-- 配置DispatchcerServlet -->
    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置Spring mvc下的配置文件的位置和名稱 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
(ps:,其中<url-pattern>標籤是用來攔截所有請求,包括靜態資源。)

二、配置spring-mvc.xml

1、配置自動掃描包,會去該包內查找相關注解,將其註冊爲bean並自動注入容器中。

<context:component-scan base-package="com.shenofusc" />

2、配置註解驅動,其自動註冊DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個bean,是spring MVC爲@Controllers分發請求所必須的。

<mvc:annotation-driven/>

3、配置視圖解析器,如何把handler返回的ModelAndView解析爲實際的物理視圖View

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/"></property>
        <property name="suffix" value=".jsp"></property>
</bean>

三、根據項目需求可選擇配置

1、註解處理器映射器和適配器。使用了會主動幫我們註冊這兩個,所以不用配置也可以。

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>   
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

2、 放過靜態資源攔截

<mvc:default-servlet-handler/>

3、文件上傳的控制器,有文件上傳的一定要記得配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
        <property name="maxUploadSize" value="10485760000"></property>
        <property name="maxInMemorySize" value="40960"></property>
</bean>

4、如果使用freeMark的話,則需要配置

<!-- spring上下文獲取bean -->
<bean class="com.shenofusc.entity.freemarker.SpringContextUtil" lazy-init="false" />
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <!-- 指定FreeMarker模板文件目錄 -->
        <property name="templateLoaderPath" value="/WEB-INF/views/" />
        <property name="freemarkerSettings">
            <props>
                <prop key="template_update_delay">0</prop>
                <prop key="defaultEncoding">UTF-8</prop>
                <prop key="url_escaping_charset">UTF-8</prop>
                <prop key="locale">zh_CN</prop>
                <prop key="boolean_format">true,false</prop>
                <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop>
                <prop key="date_format">yyyy-MM-dd</prop>
                <prop key="time_format">HH:mm:ss</prop>
                <prop key="number_format">0.######</prop>
                <prop key="whitespace_stripping">true</prop>
                <prop key="classic_compatible">true</prop>
            </props>
        </property>
        <property name="freemarkerVariables">
            <map>
                <entry key="xml_escape" value-ref="fmXmlEscape" />
            </map>
        </property>
</bean>

<!--freeMark的視圖解析器-->
<bean id="freeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="cache" value="true" />
        <property name="viewClass"     value="com.shenofusc.entity.freemarker.ExtFreeMarkerView" />
        <property name="prefix" value="" />
        <property name="suffix" value=".ftl" />
        <property name="contentType" value="text/html; charset=UTF-8" />
        <property name="attributesMap">
            <map>
                <entry key="newTag">
                    <bean class="com.shenofusc.entity.freemarker.TagCreator" />
                </entry>
            </map>
        </property>
</bean>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章