spring3升级到spring4.3

Posted 快乐崇拜234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring3升级到spring4.3相关的知识,希望对你有一定的参考价值。

正文在下面,先打个广告:

项目中有一个外购的老的系统,使用的spring3,太老了,也不符合公司安全要求,固将其升级为spring4。这里就记录一下修改内容。

升级spring版本

<spring.version>3.2.18.RELEASE</spring.version>

升级到

<spring.version>4.3.29.RELEASE</spring.version>

升级xml文件中的xsd版本

http://www.springframework.org/schema/beans/spring-beans-3.1.xsd升级到http://www.springframework.org/schema/beans/spring-beans-4.3.xsd

ContentNegotiatingViewResolver配置修改

spring3的配置:

<bean
		class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
		<property name="defaultContentType" value="text/html" />
		<property name="mediaTypes">
			<map>
				<entry key="html" value="text/html;charset=UTF-8" />
				<entry key="json" value="application/json" />
			</map>
		</property>
		<property name="viewResolvers">
			<list>
				<bean
					class="org.springframework.web.servlet.view.InternalResourceViewResolver">
					<property name="viewClass"
						value="org.springframework.web.servlet.view.JstlView" />
					<property name="prefix" value="/WEB-INF/pages/" />
					<property name="suffix" value=".jsp" />
				</bean>
			</list>
		</property>
		<property name="defaultViews">
			<list>
				<bean
					class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
			</list>
		</property>
	</bean>
	

spring4 的配置:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <bean id="contentNegotiationManager"
          class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
        <property name="favorPathExtension" value="true"/>
        <property name="ignoreAcceptHeader" value="true"/>
        <property name="useJaf" value="false"/>
        <property name="defaultContentType" value="text/html"/>
        <property name="mediaTypes">
            <map>
                <entry key="html" value="text/html"/>
                <entry key="json" value="application/json;charset=UTF-8"/>
                <entry key="xml" value="application/xml;charset=UTF-8"/>
            </map>
        </property>
    </bean>
    <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="order" value="0"/>
        <property name="contentNegotiationManager" ref="contentNegotiationManager"/>
        <!--        <property name="viewResolvers">-->
        <!--            <list>-->
        <!--                <ref bean="velocityViewResolver"/>-->
        <!--            </list>-->
        <!--        </property>-->
        <property name="defaultViews">
            <list>
                <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
            </list>
        </property>
    </bean>

修改jackjson配置

spring 3的配置

    <bean id="mappingJacksonHttpMessageConverter"  
        class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  
        <property name="supportedMediaTypes">  
            <list>  
                <value>text/html;charset=UTF-8</value>  
            </list>  
        </property>  
    </bean> 

spring4的配置

<bean id="mappingJacksonHttpMessageConverter"  
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">  
        <property name="supportedMediaTypes">  
            <list>  
                <value>text/html;charset=UTF-8</value>  
            </list>  
        </property>  
    </bean> 

替换 spring jdbc 的 queryForInt 方法

spring4中废弃了queryForInt 方法。需要使用org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate#queryForObject(java.lang.String, java.util.Map<java.lang.String,?>, java.lang.Class<T>)来代替。

如:

int count=namedParameterJdbcTemplate.queryForObject(sql,params, Integer.class);

以上是关于spring3升级到spring4.3的主要内容,如果未能解决你的问题,请参考以下文章

Spring3.x升级到Spring4.x遇到的问题及解决

spring3升级到spring4通用异常处理返回jsonp多了/**/的解决办法

Spring3X升级到Spring4X时,出现的问题

升级到 Spring 4.3.0,静态 JS 文件现在作为 'application/octet-stream' 而不是 Spring 4.2.6 中的 'application/javascript

升级到 spring 3.1.2 后的 filterInterceptor.handlers

Spring3.x 升级至 Spring4.x 详解