【发布时间】:2016-01-14 18:26:57
【问题描述】:
背景
我们正在将传统的 java 应用程序从部署到 tomcat 容器的 war 转换为在嵌入式 tomcat 服务器中运行的 Spring Boot 应用程序。我们目前正在将 JNDI 用于在 tomcat 实例的 conf/ 文件夹中的 context.xml 中定义的数据库连接。
问题
没有办法用 Spring Boot 应用程序来做到这一点,不完全是这样。我找到了在 Spring Boot 应用程序中使用 JNDI 定义数据源的解决方案,但它需要代码中的所有连接信息。这让我想到,如果连接信息在代码中,是否还有使用 JNDI 的意义?我认为 JNDI 的意义在于分离如何连接的细节,以便它可以根据环境定义。
另类
定义一个没有 JNDI 的数据源,并在外部定义连接细节(例如,命令行参数、Spring Cloud Config Server 或其他东西)。
【问题讨论】:
-
Spring Boot 支持开箱即用的非 jndi 数据源,只需向
application.properties添加一些属性即可。当使用嵌入式容器时,JNDI(恕我直言)真的没有用。仅当您部署到容器时,才可能重用现有数据源。
标签: java spring jakarta-ee spring-boot jndi