每一次的学习,都是一小步一小步的进行的,学习语言,重要的是能把hello world写出来
以及在学习过程中出现的问题能够及时的记录并总结
spring目前最新的版本是4.3,而hibernate是5.2
最新版本的学习是要花费很大的勇气进行的
首先是互联网上几乎没有什么资料可供参考
其次,这两个框架在一些业务逻辑的处理方法上,和之前的版本有很大的不同
首先是hibernate,构建sessionfactory不再是3.5以前版本的老办法了
下面是我的获得sessionfactory方法
public static SessionFactory getSessionFactory() { SessionFactory sessionFactory = null; final StandardServiceRegistry registry = new StandardServiceRegistryBuilder() .configure().build(); try { sessionFactory = new MetadataSources(registry).buildMetadata() .buildSessionFactory(); } catch (Exception e) { StandardServiceRegistryBuilder.destroy(registry); } return sessionFactory; }
spring是一个集大成者,可以很好的管理hibernate
再者。spring aop功能太强大了,利用切面编程可以方便的进行事务管理
spring中可以直接对hibernate进行配置,所以以前的hibernate.cfg.xml可以直接舍弃掉了
我们可以在spring配置文件中进行sessionFactory配置,dataSource配置以及事务配置
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" />
此处注意在hibernate5里面,我们的sessionFactory由spring提供的org.springframework.orm.hibernate5.LocalSessionFactoryBean类进行实例化
dataSource进行数据源的定义
我们可以用c3p0进行数据缓冲池
添加事务支持
<!-- 配置Hibernate事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <aop:config proxy-target-class="true"> <aop:pointcut expression=" execution(* top.scorpion.service..*(..))" id="serviceMethod" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" /> </aop:config> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="*" /> </tx:attributes> </tx:advice>
这样我们就可以利用spring管理hibernate了
时间: 2024-10-07 18:48:31