1. 程式人生 > >Spring Framework 4.0 遷移指南 (官方文件翻譯)

Spring Framework 4.0 遷移指南 (官方文件翻譯)

看到Spring Framework4.0釋出的訊息,看了下new future,OneCoder很喜歡spring這種追“時髦”的風格,groovy指令碼配置和Java8都支援了。順便就翻譯了一下官方的遷移指南。對一般使用來說,遷移沒什麼難度。替換依賴基本就可以了。

如果想要了解Sping Framework4.0.0的新特性,可以參考官方文件中的:New Features and Enhancements in Spring Framework 4.0

環境依賴要求:

Spring Framework4.0 需要Java SE 6 或以上的版本。(特別強調,最低版本實際為2008年釋出的JDK6 update 10)。如果你從老版本的Java環境中遷移,你至少需要升級到最近的JDK6版本。推薦使用Java7和8,Java8 的穩定開發者預覽狀態會一致持續到2014年3月,OpenJDK8 進入最終版為止。

如果你在 Java EE 伺服器部署Spring應用,你需要確認你的應用支援Java EE 6及以上的版本。這其中,特別需要注意的是滿足JPA2.0和Servlet3.0規範。這個意思其實是說,你仍然可以把你的Spring Framework4.0的應用部署在只支援Servlet2.5規範的容器中。(如。Google App Engine, WebSphere 7, WebLogic 10.3),只是Spring4中一些基於Servlet3.0的特性將會無效。

依賴升級

Spring Framework4.0 聲明瞭下列(可選)依賴的最低版本:

規範

  • Servlet 3.0 (2.5 支援部署)
  • JPA 2.0
  • Bean Validation 1.0
  • JSF 2.0
  • JCache 1.0 PFD
  • JDO 3.0

容器

  • Tomcat 6.0.30
  • Jetty 7.3
  • JBoss AS 6.0
  • GlassFish 3.1
  • Oracle WebLogic 10.3.4 (with JPA 2.0 patch applied)
  • IBM WebSphere 7.0.0.9 (with JPA 2.0 feature pack installed)

  • Hibernate Validator 4.3
  • Hibernate 3.6 (推薦4.2 )
  • EhCache 2.1 (推薦2.5)
  • <Quartz 1.8 (推薦2.2 )
  • Jackson 1.8 (推薦2.2 )
  • Groovy 1.8 (推薦2.2)
  • Joda-Time 2.0 (推薦2.3)</span>
  • Hessian 4.0
  • XStream 1.4
  • Apache POI 3.5

廢棄的程式碼

下列的類和方法在Spring Framework4.0中被廢棄。這些程式碼未來將會被移除,所以請檢查javadoc並遷移至推薦的寫法:

Jackson v1

所有Jackson v1支援的被廢棄,以支援Jacksonv2:

  • MappingJacksonMessageConverter
  • JacksonObjectMapperFactoryBean
  • MappingJacksonHttpMessageConverter

泛型:

GenericTypeResolver中的許多方法都被廢棄了。新的ResolvableType類提供了對GeneriTypeResolver和GenericCollectionTypeResolver類中廢棄方法的替換:

  • GenericTypeResolver.getTargetType(MethodParameter methodParam)
  • GenericTypeResolver.resolveType(Type genericType, Map<TypeVariable, Type> map)
  • GenericTypeResolver.getTypeVariableMap(Class<?> clazz)

Burlap

Burlap不再在開發包下,並且將在以後完全不再提供支援。

  • BurlapClientInterceptor
  • BurlapExporter
  • BurlapProxyFactoryBean
  • BurlapServiceExporter
  • SimpleBurlapServiceExporter

過時的JBoss類

下面的類由於不在當前JBoss釋放版中而被廢棄:</span></p>

  • JBossWorkManagerTaskExecutor
  • JBossWorkManagerUtils

其他廢棄

  • AbstractJaxWsServiceExporter.setWebServiceFeatures(Object[] webServiceFeatures)
  • JaxWsPortClientInterceptor.setWebServiceFeatures(Object[] webServiceFeatures)</span>
  • DefaultKeyGenerator

預設的快取key生成器</span>

Spring使用的預設的KeyGenerator實現,由原來的DefaultKeyGenerator變為SimpleKeyGenerator。新的生成器不會再有key衝突並且基本不太可能使一個快取的方法返回錯誤的結果。如果仍想使用之前的key策略,你需要配置使用廢棄的DefaultKeyGenerator或者建立一個自定義的KeyGenerator實現。

MVC 名稱空間

Spring MVC的名稱空間XSD已經升級,以正確使用一對屬性。當升級到spring-mvc-4.0.xsd後,你應該分別用 enable-matrix-variables 和ignore-default-model-on-redirect respectively 來替換原來的enableMatrixVariables 和ignoreDefaultModelOnRedirect 屬性。