2014-07-22 78 views
0

我将在我的应用程序中使用tomcat-jdbc连接池。有两种方法将其添加:Spring jdbc,jndi还是独立的tomcat jdbc连接池?

1)插入作为资源到Tomcat context.xml中和从 “org.springframework.jndi.JndiObjectFactoryBean”

2)与JNDI查找引用它

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"> 
     <property name="driverClassName" value="org.h2.Driver" /> 
     <property name="url" value="jdbc:h2:mem:testdb" /> 
     <property name="username" value="sa" /> 
     <property name="password" value="" /> 
    </bean> 

哪一个更好?如果没有任何区别,第二种方法将更喜欢,因为我不希望该应用程序是tomcat的依赖。

谢谢。

回答

0

这取决于应用程序的控制程度需要对连接池,如果你想/需要在多个应用程序之间共享。

如果有一个以上的应用程序共享池,你应该去的第一个方法。如果它要由单个应用程序使用,应用程序需要更改配置,更好地去为方法2

+0

只是有一个应用程序将使用池。我只是想知道,除了方法2之外,tomcat是否还有其他任何东西。 – yavuzkavus

1

如果您在如Tomcat Web应用程序服务器上部署的应用程序,那么解决方案1是因为它可以更好允许系统管理员配置DataSource并提供给您。这样,他们可以做很多微调,你不必在意。

第二种解决方案是更好,如果你运行你的应用程序独立(桌面应用程序,命令行工具,即Web容器之外的任何东西)。

+0

没有系统管理员,所以我会进行配置。我想知道,除了DataSource初始化和设置参数之外,tomcat是否还有其他的功能。 – yavuzkavus

+0

Tomcat做了大量的工作,具体取决于'DataSource'的配置。重点是:配置发生在Tomcat内部和您的应用程序之外。所以这个应用程序不依赖于Tomcat。如果您在应用程序内部创建了池,那么您将创建一个依赖项。 –

+0

Tomcat本身做了很多东西或tomcat-jdbc库吗?如果是tomcat-JDBC LIB的话,那么当我从内部独立的应用程序或弹簧在我的第二个病例初始化创建数据源,就做了同样的东西。 – yavuzkavus