第五章 Spring3.0 、Hibernate3.3与Struts2的整合
5.1整合Spring与Hibernate
5.1.1使用MyEclipse加入Spring与Hibernate功能
使用MyEclipse工具主要是为了让工程拥有把数据表生成实体类与映射的功能。然后在这个过程中,把实体类或映射文件的路径加入到spring的配置文件中。而且在Spring与Hibernate整合后,我们不需要Hibernate的配置文件,Hibernate相关功能的配置都写在spring的配置文件中。
A、加入Spring功能
这个很简单,要注意的是,在加入Spring功能的步骤中,是否需要MyEclipse给我们提供的配置文件。如果是新的工程,一般都是需要的。
B、加入Hibernate功能
在加入Hibernate功能之前,我们必须得有Spring的配置文件,或者说我们必须在有Spring功能之后。
设置Hibernate的相关功能在Spring的配置文件中设置。如果还没有Spring的功能(配置文件),就选择New Spring configuration file,否则就按下面的下面的设置。SessionFactory Id是把SessionFactory类交由Spring管理时,它的Bean Id。
选择和配置数据源,这和Hibernate单独设置的时候是一样的。可参考Hibernate的文档(如下链接)。
http://blog.csdn.net/p_3er/article/details/8965305
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><!-- 数据源 --><bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName"value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property><property name="username" value="root"></property><property name="password" value="test"></property></bean><!-- 配置SessionFactory --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><!-- 引入数据源 --><property name="dataSource"><ref bean="dataSource" /></property><!-- Hibernate的相关配置 --><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop></props></property><!-- 映射文件或者映射类的路径。这是通过MyEclipse中的工具把数据表生成实体类及映射的时候自动生成的。 --><property name="mappingResources"><list><value>cn/framelife/ssh/entity/User.hbm.xml</value></list></property></bean><!-- 配置事务 --><bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><tx:advice id="txAdvice" transaction-manager="txManager"><tx:attributes><tx:method name="get*" read-only="true"/><tx:method name="add*" rollback-for="Exception"/></tx:attributes></tx:advice><aop:config><aop:pointcut id="pointcut"expression="execution(* cn.framelife.ssh.service..*(..))" /><aop:advisor pointcut-ref="pointcut" advice-ref="txAdvice" /></aop:config><!-- 管理Bean --><bean id="userDao" class="cn.framelife.ssh.dao.impl.UserDaoImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean><bean id="userService" class="cn.framelife.ssh.service.impl.UserServiceImpl"><property name="userDao" ref="userDao"></property></bean><bean id="userAction" class="cn.framelife.ssh.struts.UserAction"><property name="userService" ref="userService"></property></bean></beans>