小编典典

容器外JNDI数据源

java

我想在Java SE应用程序中使用JNDI配置数据源。做这个的最好方式是什么?

到目前为止,我遇到了两个项目:

  1. Apache命名。项目页面上有一个用于配置数据源的特定示例,但看起来该项目已过时并且不再处于活动状态。
  2. JBossNS。使用似乎很容易配置仅本地的JNDI LocalOnlyContextFactory,但我还没有找到任何有关如何实际配置数据源的文档。

如果可能,我还要使用JTA事务管理器(使用JOTM?)配置数据源。


阅读 217

收藏
2020-11-16

共1个答案

小编典典

您为什么为此使用JNDI?如果您有提供程序,那并不是一个不好的解决方案,而是有诸如依赖注入(IoC:通过SpringGuice)之类的替代方法。

这里描述
Spring JDBC数据访问。很棒的是,您可以使用Spring将a DataSource注入代码中:

<bean class="com.my.Persister">
    <property name="dataSource" ref="dataSource" />
</bean>

可以使用JNDI查找来定义数据源:

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/MyDataSource" />

在测试环境中,您可以直接注入数据源:

<bean id="dataSource" class="apache.db.PoolingDataSource">
    <!-- config goes here -->
</bean>
2020-11-16