【问题标题】:Problem using custom JDBC driver to work with Zuul-Eureka Spring-Boot Applications which uses HTTP communications使用自定义 JDBC 驱动程序与使用 HTTP 通信的 Zuul-Eureka Spring-Boot 应用程序一起工作时出现问题
【发布时间】:2019-02-19 20:06:55
【问题描述】:

我有一组 Spring Boot 应用程序,它们通过 http 调用相互通信,并在 Eureka 服务器中注册。

其中一个应用程序(例如 DBServices)与 Oracle DB 交互。在这个数据库中,我保存了其他 Java 应用程序的一些数据,比如消费者。 现在,我试图让消费者通过我正在编写的自定义 JDBC 驱动程序(JDBC 驱动程序的包装器)来使用他们在我的 Oracle DB 中的数据。

我试图找到一种方法,当消费者调用 createConnection()executeQuery() 时,我的自定义驱动程序实际上在“DBServices”中执行他们的查询并通过结果集返回结果。这可能吗?

这个问题主要是由于自定义 JDBC 驱动程序试图与使用 http / REST 通信的微服务进行交互。

【问题讨论】:

  • 这取决于您如何配置数据源。我相信,您将不得不将数据源类扩展为您自己的类并配置您的类而不是 JDBC 驱动程序的数据源类。

标签: java spring spring-boot jdbc netflix-eureka


【解决方案1】:

如果我理解正确,您正试图在现有 JDBC 数据源类的顶部创建一个包装器。这取决于您如何配置数据源,但我相信,您必须将数据源类扩展到您的自定义类并在数据源配置中配置您的类而不是 JDBC 驱动程序的数据源标准类。

现在在您的自定义数据源类中,您可以覆盖 createConnection 或 executeQuery 函数。同样,您可能还需要考虑重写 Statement 和 PreparedStatements 类。

另外,JDBC驱动类中有很多静态初始化,需要注意。除此之外,如果您使用的 JDBC 驱动程序具有最终类,那么这种方法根本不起作用。

(将其发布为答案,因为 cmets 不能有这么长的文本)

【讨论】:

  • JDBC 驱动程序本身适用于 JDBC URL。我的问题是,我的微服务应用程序中有 HTTP 调用。
  • @AnkurB.Roy - 请明确您的问题。您可以重新表述您的问题
猜你喜欢
  • 2017-08-04
  • 2011-02-11
  • 2018-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 2013-06-24
  • 2016-11-17
相关资源
最近更新 更多