Out容器JNDI数据源

nik*_*ita 15 java jndi datasource

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

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

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

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

oxb*_*kes 10

你为什么要用这个JNDI?如果你有一个提供者,那么这不是一个糟糕的解决方案,但是有依赖注入等替代方案(IoC:通过SpringGuice).

这里描述 Spring JDBC数据访问.最棒的是你可以使用Spring在DataSource你的代码中注入一个:

<bean class="com.my.Persister">
    <property name="dataSource" ref="dataSource" />
</bean>
Run Code Online (Sandbox Code Playgroud)

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

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/MyDataSource" /> 
Run Code Online (Sandbox Code Playgroud)

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

<bean id="dataSource" class="apache.db.PoolingDataSource">
    <!-- config goes here -->
</bean>
Run Code Online (Sandbox Code Playgroud)