java - DataSourceTransactionManager 和 JndiObjectFactoryBean 和 JdbcTemplate 有什么用?

标签 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" />

上面的类有什么用,我是spring新手,我想知道我们使用上面的类的目的是什么

下面是我的代码:-

<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>

最佳答案

org.springframework.jdbc.core.JdbcTemplate

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

JdbcTemplate

<小时/>
org.springframework.jdbc.datasource.DataSourceTransactionManager

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

DataSourceTransactionManager

org.springframework.jndi.JndiObjectFactoryBean
<小时/>

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

JndiObjectFactoryBean

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

这一行告诉您的 Spring 容器扫描您的类以查找 @Transactional 等注释。您在 @Repository 中的方法上使用 @Transactional 来表明您希望将其包装在 Transaction 中。

关于java - DataSourceTransactionManager 和 JndiObjectFactoryBean 和 JdbcTemplate 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40086182/

相关文章:

java - 保存数组中两个数字之间的奇数

java - 为什么 Spring Data REST 搜索返回没有页面信息的页面?

java - 为什么将 Drools 6 KIE JAR 加载到代码中会失败?

java - 在Spring应用程序中使用jpa实体管理器将blob导入mysql

spring - 多个 Spring 配置文件的属性解析(yaml 配置)

java - 使用带有自定义 Bean 解析器的 .properties 文件

java - gradle 4.9-gradlew和Java 10仍然获得:无法从 '10'确定Java版本

java - 计算Java中两个日期之间的天数

spring - 在 Spring 4 中使用 ehcache 3

Spring Boot 和契约优先 Soap WebService