独立使用时 spring-boot-starter-jdbc 的问题
Posted
技术标签:
【中文标题】独立使用时 spring-boot-starter-jdbc 的问题【英文标题】:Issue with spring-boot-starter-jdbc when using in standalone 【发布时间】:2016-08-10 14:47:43 【问题描述】:我正在尝试在基于非 web/非 tomcat 的场景中使用 spring-boot-starter-jdbc。
我试图排除 tomcat-jdbc,以便当我启动 spring-boot 应用程序时 tomcat 不会启动。
我遇到的问题是
spring.datasource.initialize=false
spring.datasource.url=jdbc:h2:tcp://localhost:52705/~/test
即使我要求 spring-boot 不自动配置 mem db,如果我不包含 tomcat-jdbc,它总是会启动一个。因此,似乎没有办法在独立类型的应用程序中将 spring-boot-starter-jdbc 与非 mem h2 数据库一起使用。
这个问题有解决方案还是bug?
【问题讨论】:
你的 pom 文件中有 h2 依赖吗? 是的,我有 h2 依赖项。为了证明我包含了tomcat-jdbc,它启动了一个不同的数据源并且没有启动嵌入式数据库。 你是否从你的 webapp 启动了 h2 服务器?如果没有启动,任何基于 tcp 的 jdbc url 都将不起作用 【参考方案1】:tomcat-jdbc 与 Tomcat 服务器无关。只是 Tomcat 正在寻找更好的 JDBC 连接池库,所以他们做了它并使用了 tomcat 的库名称。
如果您想排除 Web 组件,那么您确实想删除对项目的 spring-boot-starter-web
依赖项,因为其中存在对 spring-boot-starter-tomcat 的依赖项。
【讨论】:
以上是关于独立使用时 spring-boot-starter-jdbc 的问题的主要内容,如果未能解决你的问题,请参考以下文章
什么是`spring-boot-starter` jars?
Spring-boot-starter RabbitMQ 全局错误处理