Spring3.2.3和Hibernate4.2.1整合

为什么很多公司还是沿用旧版本呢,原因就是成本问题,更新之后不会有太多的好处,相反,万一不稳定的话会带来一系列问题,除非是刚做的产品,没有沿用之前的框架。


很多教程都是hibernate3,spring2的,官网跟新快,反正旧的的东西一般都会兼容,为啥不给自己一个挑战的机会,用用新的包和新的知识,这样你比别人已经优秀很多了。


下午研究Spring整合Hibernate,由于官方的包更新版本很快,所以在配置方面搞了挺久。


有人要整合的jar包,感觉自己去官网下载各自的包,自己阅读文档或者查资料就可以了,自己动手引入相关的包,不过有人想要了,那就直接给Spring3.2.3 Hibernate4.2.1整合jar包。下载地址:

http://download.csdn.net/detail/iaiti/5696281

   

Spring3后不再提供其他的包,而学习Spring2的时候,里面有很多包可供选择,


<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="annotatedClasses">
	<list>
        <value>com.my.model.User</value>
    </list>
  </property>
  <property name="hibernateProperties">
    <value>
      hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
      hibernate.show_sql=true
    </value>
  </property>
</bean>


需要引入org.springframework.orm包,本来用习惯直接用AnnotationSessionFactoryBean,但是hibernate4里面并没有这个类,hibernate3.annotation.AnnotationSessionFactoryBean3就有,所以还是直接用上面的LocalSessionFactoryBean,但是查看源代码会发现,都有annotatedClasses的数组用来传入类。

      为什么4里面没有AnnotationSessionFactoryBean?

         还是看源码:

  • java.lang.Object
    • org.springframework.orm.hibernate3.HibernateExceptionTranslator
      • org.springframework.orm.hibernate3.AbstractSessionFactoryBean
        • org.springframework.orm.hibernate3.LocalSessionFactoryBean
          • org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
  • java.lang.Object
    • org.springframework.orm.hibernate4.HibernateExceptionTranslator
      • org.springframework.orm.hibernate4.LocalSessionFactoryBean

FactoryBean that creates a HibernateSessionFactory. This is the usual way to set up a shared Hibernate SessionFactory in a Spring application context; the SessionFactory can then be passed to Hibernate-based data access objects via dependency injection.

所以没有就是没有,直接用LocalSessionFactoryBean


虽然你用教程讲的配置起来很爽,全部都是别人写好的东西,但是,当你自己在摸索的时候,可以学到更多的东西。所以,旧的东西是经典的,同时,也要学着自己用新的东西。


你可能感兴趣的:(spring,Hibernate,整合)