java - JNDI 是否仅与 webcontiner/J2EE 应用程序一起使用

标签 java jakarta-ee web-applications jdbc jndi

我们可以编写使用 JNDI 的独立程序吗?我搜索了一下,似乎 JNDI 可以与 Web 容器结合使用,即要使用 JNDI,JNDI 支持应该来自 Web 容器?

我们可以编写一个简单的独立程序(带有main()方法)并使用JNDI来获取数据库连接吗?我在谷歌上搜索了很多,但不确定我们是否可以做到这一点。

任何意见都受到高度赞赏。

谢谢

最佳答案

JNDI 解决的问题是能够检索 JVM 中存在但代码无法访问的对象,并在运行时使用字符串键执行此操作。

您只需要在独立应用程序中实现此技术即可使用它。我用 https://code.google.com/p/osjava/wiki/SimpleJNDI 做到了许多个月前。

但是,现在 JNDI 很少被提及,因为它已经演变成依赖注入(inject)(Java EE 中的 CDI),其中查找机制已移至您自己的代码之外。如果您正在编写新的独立应用程序,我建议您研究 Dagger 2 而不是 JNDI。请注意,该项目有相当陡峭的学习曲线 - 您可能想尝试 https://github.com/ravn/dagger2-hello-world在学习的过程中。

参见https://github.com/google/dagger

关于java - JNDI 是否仅与 webcontiner/J2EE 应用程序一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24485657/

相关文章:

java - 我必须创建一个 deepArray2String 方法,该方法需要一个 2D int 数组 'x' 并返回其字符串表示形式

java - 在 Nashorn 中执行 javascript 时找不到文件异常

java - 如何修复错误 java.util.InputMismatchException?

java - 在部署中找不到名为cinemaReservationPersistenceUnit的持久单元 "javakurs3.final.project.cinema.war"

tomcat - Azure Web应用程序Tomcat 8配置

Java:加载文件记录数组时出现问题

java - 获取有关校长的信息

jakarta-ee - 为什么带有 bean 管理事务的 EJB bean 充当 "transaction barrier"?

java - 我如何访问在单独的 Web 应用程序中实现远程接口(interface)的 EJB?

php - 如何在 PHP 中识别用户语言