升级Spring3.1RC2 和Hibernate4.0.0CR7遇到的一些问题及解决

本文详细介绍了在升级Spring3.1RC2与Hibernate4.0.0CR7过程中遇到的问题及其解决办法,包括Maven repository升级、Hibernate新增依赖、Quartz与Ehcache升级、Spring配置调整、事务管理更改、ResponseBody输出乱码问题解决、Blob配置简化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

升级Spring3.1RC2 和Hibernate4.0.0CR7遇到的一些问题及解决

Spring3.1RC2支持

1. Quartz2

2. Hibernate4,

3. New HandlerMethod-based Support Classes For Annotated Controller Processing

4. Consumes and Produces @RequestMapping Conditions

5. Working With URI Template Variables In Controller Methods

6. Validation For @RequestBody Method Arguments //and so on....

7. Spring MVC 3.1 的annotation可以参看下http://starscream.iteye.com/blog/1098880

Hibernate 4可以查看http://community.jboss.org/wiki/HibernateCoreMigrationGuide40

下面主要说一下我在升级过程中遇到的一些问题及解决办法。

l Maven的repository始终无法升级到SpringRC2,可能服务器有问题吧,目前暂时是从官方下载的整个SpringRC2的zip包。版本号是:3.1.0.RC2

l Hibernate可以从repository中升级到4.0.0.CR7,新增的依赖包有jandex-1.0.3.Final.jar,jboss-logging-3.1.0.CR2.jar,jboss-transaction-api_1.1_spec-1.0.0.Final.jar。

l Quartz升级到2.1.1,Ehcache-core升级到2.5.0

l Spring3.1取消了HibernateTemplate,因为Hibernate4的事务管理已经很好了,不用Spring再扩展了。所以以前的Dao需要改写,直接调用Hibernate 的Session进行持久化。

l Spring的配置:

sessionFactoryorg.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean换成org.springframework.orm.hibernate4.LocalSessionFactoryBean

l Spring的配置:

<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>改为

<prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</prop>

EhCacheRegionFactory使用配置:

<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>

l 使用Hibernate所有的openSession()改为getCurrentSession()

l Spring 的配置:Hibernate transactionManager从3改为4,如下:

<bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">

<property name="sessionFactory" ref="sessionFactory"/>

</bean>

l Spring @ResponseBody输出是乱码的问题:原来使用的是:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">

改为:

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

<property name = "messageConverters">

<list>

<bean class = "org.springframework.http.converter.StringHttpMessageConverter">

<property name = "supportedMediaTypes">

<list>

<value>text/plain;charset=UTF-8</value>

</list>

</property>

</bean>

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

<property name = "supportedMediaTypes">

<list>

<value>text/plain;charset=UTF-8</value>

<value>application/json;charset=UTF-8</value>

</list>

</property>

</bean>

</list>

</property>

这样比每个Controller都加上@RequestMapping(value = "/showLeft", method = RequestMethod.GET)
produces = "text/plain; charset=utf-8"方便的多。

l Blob,以前配置:

@TypeDefs({@TypeDef(name="clob",typeClass=ClobStringType.class),@TypeDef(name="blob",typeClass=BlobByteArrayType.class)})

@Lob

@Type(type="blob")

public byte[] getPic() {

return pic;

}

现在改为:

@Lob

public byte[] getPic() {

return pic;

}

简单很多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值