容器外 JNDI 数据源

2022-09-03 14:21:00

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

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

  1. Apache 命名。项目页面具有用于配置数据源的特定示例,但看起来该项目非常旧且不再处于活动状态。
  2. 新浪网.看起来使用 配置纯本地 JNDI 很容易,但我还没有找到任何关于如何实际配置数据源的文档。LocalOnlyContextFactory

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


答案 1

你为什么使用JNDI来实现这一点?如果你有一个提供商,这并不是说这是一个糟糕的解决方案,但是有替代方案,例如依赖注入(IoC:通过SpringGuice)。

此处描述了 Spring JDBC 数据访问。最棒的是,你可以使用Spring将一个注入到你的代码中: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>

答案 2

这些引用非常古老,但可能有助于使用jnpserver(JBoss命名服务提供商):


推荐