我可以在Spring-MyBatis应用程序中设置Tomcat的JNDI连接池设置吗?

时间:2012-11-15 19:34:10

标签: spring tomcat7 jndi mybatis

环境:
Tomcat 7
JNDI
弹簧的MyBatis
没有JTA - 仅汇集公共

问题:无法使连接池按照宣传的方式工作。我找不到一个不使用独立事务管理器或没有将所有设置放在战争中的例子,这使得JNDI毫无意义。我被告知JTA对于这个应用程序来说太过分了,我们应该坚持使用公共池。这是有道理的,但我没有看到配置池的方法,如果我们这样做。

那么......如何在不使用独立事务管理器的情况下将设置放在war文件中来配置连接池?这可以在没有完整的Java EE Application Server的情况下完成吗?我们只是从另一个实际上是完整Java EE的产品转移到Tomcat,所以我认为这可能是一个Container vrs。应用服务器问题。

奇怪的是我们可以并且已经使用过JNDI,但是池化肯定是错误的。

以下是一个可能有效的示例,但如果设置将在META-INF / context.xml中,为什么还要使用JNDI?:

MyBatis JNDI Example

1 个答案:

答案 0 :(得分:0)

即使使用context.xml,它仍然是容器级别设置。但是,这是一种在单元中部署所有内容的便捷方式,而不必在部署WAR文件之前创建连接池。

JNDI旨在保持应用程序配置的通用性。例如,如果您使用WAR并将其部署在WebSphere中,它将忽略context.xml文件。但是WebSphere会在您的web.xml中看到您有一个JDNI资源引用,并引导您创建数据源。与Tomcat相同的想法,只是一种不同的方式。

如果您100%确定此应用程序仅在Tomcat中运行,那么您不必使用JNDI。但是,如果您移动到另一个容器,它将在以后为您省去麻烦。