(转载)spring3和spring4的一些需要注意的地方

转载地址:http://blog.csdn.net/cr135810/article/details/52302387

最近搭建了一个框架,开始用的spring3.1.1 后来升级到spring4.2.0,把遇到的问题记录一下当做备份了


1、Java.lang.NoSuchMethodError: org.springframework.aop.scope.ScopedProxyUtils.isScopedTarget(Ljava/lang/String;)Z

这个问题是因为,我的项目里有两个aop的jar包一个是之前的3.1.1一个是4.2.0,把3.1.1的删除掉就好了



2、org.springframework.web.servlet.view.ContentNegotiatingViewResolver的配置

invalid property ‘mediatypes’ of bean [org.springframework.web.servlet.view.ContentNegotiatingViewResolver] 遇到一个这个错误

spring3 是这样的

  1. <bean  
  2.         class=”<span style=”color:#ff0000;”>org.springframework.web.servlet.view.ContentNegotiatingViewResolver</span>>  
  3.         <property name=“order” value=“1”></property>  
  4.         <property name=“mediaTypes”>  
  5.             <map>  
  6.                 <!– 告诉视图解析器,返回的类型为json格式 –>  
  7.                 <entry key=“json” value=“application/json” />  
  8.                 <entry key=“xml” value=“application/xml” />  
  9.                 <entry key=“htm” value=“text/htm” />  
  10.             </map>  
  11.         </property>  
  12.         <property name=“defaultViews”>  
  13.             <list>  
  14.                 <!– ModelAndView里的数据变成JSON –>  
  15.                 <bean  
  16.                     class=“org.springframework.web.servlet.view.json.MappingJacksonJsonView” />  
  17.             </list>  
  18.         </property>  
  19.         <property name=“ignoreAcceptHeader” value=“true”></property>  
  20.     </bean>  
<bean
        class="<span style="color:#ff0000;">org.springframework.web.servlet.view.ContentNegotiatingViewResolver</span>">
        <property name="order" value="1"></property>
        <property name="mediaTypes">
            <map>
                <!-- 告诉视图解析器,返回的类型为json格式 -->
                <entry key="json" value="application/json" />
                <entry key="xml" value="application/xml" />
                <entry key="htm" value="text/htm" />
            </map>
        </property>
        <property name="defaultViews">
            <list>
                <!-- ModelAndView里的数据变成JSON -->
                <bean
                    class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
            </list>
        </property>
        <property name="ignoreAcceptHeader" value="true"></property>
    </bean>


spring4 就得改为下面这个样子,问题就解决了

  1. <bean  
  2.         class=”<span style=”color:#ff0000;”>org.springframework.web.accept.ContentNegotiationManagerFactoryBean</span>>  
  3.         <property name=“favorPathExtension” value=“true” />  
  4.         <property name=“favorParameter” value=“true” />  
  5.         <property name=“ignoreAcceptHeader” value=“true”></property>  
  6.         <property name=“defaultContentType” value=“text/html” />  
  7.         <property name=“mediaTypes”>  
  8.             <map>  
  9.                 <!– 告诉视图解析器,返回的类型为json格式 –>  
  10.                 <entry key=“json” value=“application/json” />  
  11.                 <entry key=“xml” value=“application/xml” />  
  12.                 <entry key=“htm” value=“text/htm” />  
  13.                 <entry key=“file” value=“application/octet-stream” />  
  14.                 <entry key=“image” value=“image/*” />  
  15.             </map>  
  16.         </property>         
  17.     </bean>  
<bean
        class="<span style="color:#ff0000;">org.springframework.web.accept.ContentNegotiationManagerFactoryBean</span>">
        <property name="favorPathExtension" value="true" />
        <property name="favorParameter" value="true" />
        <property name="ignoreAcceptHeader" value="true"></property>
        <property name="defaultContentType" value="text/html" />
        <property name="mediaTypes">
            <map>
                <!-- 告诉视图解析器,返回的类型为json格式 -->
                <entry key="json" value="application/json" />
                <entry key="xml" value="application/xml" />
                <entry key="htm" value="text/htm" />
                <entry key="file" value="application/octet-stream" />
                <entry key="image" value="image/*" />
            </map>
        </property>       
    </bean>


3、问题找不到了,直接说一下修改的地方吧就是jackson的问题


spring3的配置如下

  1. <!–避免IE执行AJAX时,返回JSON出现下载文件 –>  
  2.     <bean id=“mappingJacksonHttpMessageConverter”  
  3.         class=”org.springframework.http.converter.json.<span style=”color:#ff0000;”>MappingJacksonHttpMessageConverter</span>>  
  4.         <property name=“supportedMediaTypes”>  
  5.             <list>  
  6.                 <value>text/html;charset=UTF-8</value>  
  7.             </list>  
  8.         </property>  
  9.     </bean>  
<!--避免IE执行AJAX时,返回JSON出现下载文件 -->
    <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.<span style="color:#ff0000;">MappingJacksonHttpMessageConverter</span>">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
            </list>
        </property>
    </bean>

spring4的配置如下

  1. <!–避免IE执行AJAX时,返回JSON出现下载文件 –>  
  2.     <bean id=“mappingJacksonHttpMessageConverter”  
  3.         class=”org.springframework.http.converter.json.<span style=”color:#ff0000;”>MappingJackson2HttpMessageConverter</span>>  
  4.         <property name=“supportedMediaTypes”>  
  5.             <list>  
  6.                 <value>text/html;charset=UTF-8</value>  
  7.             </list>  
  8.         </property>  
  9.     </bean>  
<!--避免IE执行AJAX时,返回JSON出现下载文件 -->
    <bean id="mappingJacksonHttpMessageConverter"
        class="org.springframework.http.converter.json.<span style="color:#ff0000;">MappingJackson2HttpMessageConverter</span>">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
            </list>
        </property>
    </bean>

两个的区别就是 文件名字变了,已做标红处理


4、有个asm的jar包在spring4已经不需要单独加载这个jar包了,删掉即可


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值