Spring3.x升級到Spring4.x遇到的問題及解決


原來項目使用的是Spring3.x+jdk6,現今升級到了Spring4.x+jdk8,下面就我在升級過程中遇到的問題做個分享。

我升級到的Spring版本版本是:

1 <dependency>
2    <groupId>org.springframework</groupId>
3    <artifactId>spring-context</artifactId>
4    <version>4.3.14.RELEASE</version>
5 </dependency>

1.如果由使用到了SpringMVC的話,和json相關的依賴就需要升級了

1 <dependency>
2    <groupId>com.alibaba</groupId>
3    <artifactId>fastjson</artifactId>
4    <version>1.2.45</version>
5 </dependency>

增加依賴:

 1 <dependency>
 2     <groupId>com.fasterxml.jackson.core</groupId>
 3     <artifactId>jackson-annotations</artifactId>
 4     <version>2.9.3</version>
 5 </dependency>
 6 <dependency>
 7     <groupId>com.fasterxml.jackson.core</groupId>
 8     <artifactId>jackson-core</artifactId>
 9     <version>2.9.3</version>
10 </dependency>
11 <dependency>
12     <groupId>com.fasterxml.jackson.core</groupId>
13     <artifactId>jackson-databind</artifactId>
14     <version>2.9.3</version>
15 </dependency>

servlet.xml改寫:

<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">

改為:

<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">

 

2.Spring4.x寫法的改變

<ref local="xxx" />  改為  <ref bean="xxx" />
即local  改為  bean

 

3.在Spring 3.2.2之后,jdbctemplate中的 (@Deprecated)queryForInt()  已經被取消了,所以得改成queryForObject() 。

 

4.如果是JDK6變成JDK8的話(Spring4.x向下兼容到6,推薦使用7或8),那么別忘記改編譯器到相應的版本,eclipse有多種改法,我列出一種(說起來也丟人,這種方式我最近才知道的):

   在eclipse界面的工程中右擊Properties-ProjectFacts-修改java版本,通常的編譯版本是java1.6,改成java1.8即可,Apply后自動編譯,有些人說要重啟生效,我好像是即時的,不知道是不是我

  eclipse版本比較高的原因(Version: Luna Service Release 2 (4.4.2))

 

5.spring升級到4.x后,orm包里面移除了對ibatis的支持,所以有幾種方式可以解決

A.升級到mybatis(成本充足可以選擇,畢竟以后還是得升級到mybatis的)

B.Spring-orm包不升級,依舊使用Spring3.x

C.Spring-orm升級到4.x,增加以下依賴

1 <dependency>
2     <groupId>org.mybatis</groupId>
3     <artifactId>mybatis-2-spring</artifactId>
4     <version>1.0.3</version>
5 </dependency> 

 

后續測試過程中如果發現其他問題,再補充。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM