Java 了解数据源、会话工厂、事务管理器和JPA模板

Java 了解数据源、会话工厂、事务管理器和JPA模板,java,hibernate,Java,Hibernate,我正在spring hibernate应用程序中使用配置。配置如下所示我的问题是,数据源、会话工厂、事务管理器和JPA模板的目的和职责是什么。以及为什么在另一个bean id中使用一个bean id。 <!-- DataSource --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="dri

我正在spring hibernate应用程序中使用配置。配置如下所示我的问题是,
数据源
会话工厂
事务管理器
JPA模板
的目的和职责是什么。以及为什么在另一个bean id中使用一个bean id。

<!-- DataSource -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>

<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
            <prop key="hibernate.format_sql">true</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
    <property name="packagesToScan" value="net.softengine.edu.model"/>
</bean>

<!-- Transaction Manager-->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- JPA Template -- >
<bean id="jpaTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>

<tx:annotation-driven transaction-manager="transactionManager"/>

org.hibernate.dialogue.mysql5dialogue
更新
真的
真的

您必须遵循关于Spring+Hibernate+JPA的教程。在Stackoverflow上,您不能期望这样的问题得到答案。SessionFactory和JPAAPI完全无关