【问题标题】:springboot with tomcat datasource带有tomcat数据源的spring boot
【发布时间】:2017-10-07 02:47:06
【问题描述】:

可以在开发模式下使用tomcat数据源和springboot吗?

我想将我的项目配置为使用 tomcat 数据源,因此,当我创建一个 .war 并在配置了数据源的 tomcat 客户端上部署时工作正常

但是如何将它与 mvn spring-boot:run 一起使用?

【问题讨论】:

  • 您可以将 Spring Boot 配置为使用您的 JNDI DataSource 引用您的 Tomcat 数据源。
  • 但是我开发的时候如何在tomcat中创建数据源呢?因为tomcat是嵌入的
  • 我想您可以通过打包 Spring Boot 应用程序as a war 来避免创建可执行 jar,然后将该战争部署到您拥有 defined the data source 的 Tomcat 实例中。
  • 不,我的部署没问题,但是当我开发新的东西时,我需要更改我的 application.properties 并评论 spring.datasource.jndi-name=java:jboss/datasources/customers 因为当我运行 spring-boot:run 来测试我的应用程序数据源不工作(或者我不知道如何配置)
  • 您能否解释一下,如果您使用的是嵌入式 Tomcat,那么您到底为什么要使用 JNDI 数据源?

标签: tomcat spring-boot datasource


【解决方案1】:

看来您想要的是针对不同的环境使用不同的配置。

您需要利用Spring Profiles。通过设置变量spring.profiles.active,您可以定义您当前的环境设置。

例如,在生产环境中,当您运行应用程序时,您可以在 JVM 设置中设置:

java -Dspring.profiles.active=production ...

但是当您开发应用程序时,在您的 IDE 中您将设置设置为

spring.profiles.active=development

我通常使用 Spring Boot 配置 using YAML 来完成它,然后我通过定义 multi-profile document 来定义特定于环境的设置:

spring:
  profiles: development,default
  datasource:
    url: "jdbc:postgresql://localhost:1543/jedis"
    username: "luke"
    password: "sk1walk3r!"
    driver-class-name: "org.postgresql.Driver"
spring:
  profiles: production
  datasource:
    jndi-name=java:jboss/datasources/jedis

这样,您可以在 IDE 等中进行开发或调试时轻松更改使用的设置。

可能还有一种使用属性文件的方法,但我不知道,因为我总是使用 YAML。

【讨论】:

  • Tks,我今天开始这样做,等待另一种可能性:D 你知道我可以在 intelij 想法中设置 spring.profiles.active=dev 吗? tks
  • Menu Running->Edit Configurations... 在对话框中,在“VM Options”输入框中设置配置文件,你将其设置为-Dspring.profiles.active=dev-D 是用于设置系统属性的 Oracle/OpenJDK JVM 选项。详情请咨询java -h
  • 你能帮帮我吗?我使用你的解决方案,但我只有 application.properties 和 application-dev.properties,在我的正常情况下我有 spring.datasource.jndi-name 属性,而在我的 -dev 中没有,但是当我在开发模式下运行时,他从属性加载 spring.datasource.jndi-name 并且我收到错误我认为 r 因为他加载然后从 -dev 替换但我在 -dev 文件中没有这个。我该如何解决这个问题?
  • 更改数据源后我开始得到延迟加载,我需要添加另一个配置来解决这个问题吗? tks
  • “修复延迟加载”是什么意思?
猜你喜欢
  • 1970-01-01
  • 2018-10-16
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多