DataSourceTransactionManager和JndiObjectFactoryBean和JdbcTemplate有什么用?

时间:2016-10-17 12:16:45

标签: java spring

以下是什么用途:

org.springframework.jdbc.core.JdbcTemplate
org.springframework.jdbc.datasource.DataSourceTransactionManager
org.springframework.jndi.JndiObjectFactoryBean
<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />

上述类的用途是什么,我是春天的新手,我想知道我们在课程上使用的目的

下面是我的代码: -

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
    <props>
        <prop key="java.lang.Exception">Error</prop>
    </props></property></bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 

    <property name="prefix">
        <value>/WEB-INF/jsp/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean> 

 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource" /></bean>
  <bean id="transactionManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
  scope="singleton">
  <property name="dataSource" ref="dataSource" />
  </bean>
 <tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />
  <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="java:comp/env/jdbc/DbDataSource"/>
  <property name="lookupOnStartup" value="true"/>
  <property name="proxyInterface" value="javax.sql.DataSource"/></bean>
  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">      
</bean>

1 个答案:

答案 0 :(得分:6)

org.springframework.jdbc.core.JdbcTemplate

Spring使用JdbcTemplate类与数据库进行交互。您可以使用此类提交查询。它显着减少了样板代码。

JdbcTemplate

org.springframework.jdbc.datasource.DataSourceTransactionManager

这将是您的TransactionManagerTransactionManagers处理所有事务活动 - 运行查询,包装在事务中。如您所见,DataSource作为属性传递给它。 DataSource将是您的DB连接。

DataSourceTransactionManager

org.springframework.jndi.JndiObjectFactoryBean

这是一个Spring类,用于处理与JNDI名称获取的资源的连接。

JndiObjectFactoryBean

<tx:annotation-driven proxy-target-class="true" transaction-manager="transactionManager" />

此行告诉您的Spring容器扫描您的类,以获取@Transactional等注释。您对@Transactional中的方法使用@Repository,请注意您希望将其包含在Transaction中。