在哪里为Web应用程序定义数据源?

时间:2016-06-15 08:31:24

标签: spring-mvc tomcat datasource spring-data-jpa jndi

我正在开发一个基于Spring MVC框架的Web应用程序。在这个应用程序中,我需要将一些数据保存到DB。

我打算也使用Spring数据JPA。现在,配置数据源的最佳位置在哪里?我打算在Apache tomcat中部署它。

我想我们有两个地方:

1)在spring配置文件中定义,如下所示:

<bean id="dataSource"  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName" value="org.h2.Driver"/>
      <property name="url" value="jdbc:h2:tcp://localhost:9092/~/test"/>
      <property name="username" value="sa"/>
      <property name="password" value=""/>
 </bean>

2)在Tomcat中定义。

我的理解是否正确? #1和#2的方法有什么不同吗?

如果我们使用#2,Spring可以在应用程序需要时对数据源进行依赖注入吗? OR 我们可以在这种情况下通过JNDI查找引用数据源吗?

我正在学习我自己的知识,了解现实应用程序的工作原理;所以任何更深刻的见解都会有很大帮助。

1 个答案:

答案 0 :(得分:2)

在将数据源设置为JNDI并在配置中定义之前,我个人已经回过头来。

我得出的结论是,我更喜欢在配置中定义数据源,原因有两个:

  • 使用JNDI我需要将mysql-connector jar添加到tomcat lib。我不想改变运行环境以满足特定应用的需求。
  • 在Web应用程序中进行配置,我可以使用注释进行配置,而不使用XML
  • 我认为这是正确的应用程序,需要知道如何连接到数据库,不一定是容器