spring boot项目中使用jpa的一个未解之谜
公司最近主要的工作就是把之前的一个项目进行几乎全面的重构,之所以说几乎全面,是因为除开业务逻辑外全部换血:
框架由spring+struts2+mybatis改为spring boot+jpa
数据库由sybase+h2改为oracle+redis
子系统之间的交互由activemq改为http
代码具体实现全部重写
对一个运行了若干年的项目进行这样的大动作,路程无疑是漫长而复杂的。在进行了一系列设计文档的编写、评审、修订、再评审之后,终于可以开始码代码了。
本以为码代码终于可以松一口气,没想到在框架搭建阶段便遇到了一头拦路虎:
在进行jpa整合的时候,一切配置完成后,却无论如何不能启动项目,日志中打印了如下的异常信息
[ERROR] [2017-09-11 18:11:39.707] org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter.report [LoggingFailureAnalysisReporter.java : 42] | *************************** APPLICATION FAILED TO START *************************** Description: Cannot determine embedded database driver class for database type NONE Action: If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (the profiles "dev" are currently active).
看这个异常,就是数据库连不上,似乎是配置文件加载不了,但是实际上只要我去掉jpa的jar包,就可以正常运行。
于是网上一顿搜索,但是结果却不尽如人意,看了十几个答案,基本上都是一样的:
原因是:springboot启动时会自动注入数据源和配置jpa
解决:在@SpringBootApplication中排除其注入
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
但是很明显,我就是要用数据库,这样一排除掉自然是启动不报错了,但是我却用不了了,于是我便求助了一下之前专门研究了一段时间jpa的同事。
他看了下我的项目后,说少了h2的jar包,于是在pom.xml中加入了h2的依赖
dependency groupId com.h2database /groupId artifactId h2 /artifactId version 1.3.175 /version /dependency
没想到加入这个jar之后再次运行项目,还真的是成功启动并连接上数据库了!
只不过,项目虽然成功启动,他却也说不出来为什么要这样改,之所以这样改了,只是因为一个偶然。
后来我也再次查看了项目框架中的代码,依旧没有找到哪里用到了h2,因此这个问题便暂时成为了未解之谜!
由于任务催的紧,一时之间也没有那么多时间深入去探究,只能做个记录,留待后边空闲点了继续刨根问底,也希望知道答案的朋友不吝赐教,感激不尽!
SpringBoot2.x系列教程29--SpringBoot整合JPA框架实现数据库CRUD操作 在上一章节中,壹哥 带大家在Spring Boot中整合了Mybatis框架,虽然Mybatis进行数据库操作已经很简单了,但是作为一个程序员,我们就得有追求极致的精神,就要想一下,还有没有第3种方式可以进行数据库操作呢? 其实是有的! 所以在这一章节中,我会继续带领大家学习在Spring Boot中整合JPA框架,利用JPA来实现数据库的操作。 一. JPA简介 1. JPA概念 JPA是Sun官方提出的Java持久化规范,是Java Persistence API的简称,中文名‘Java持久层API’,它本质上是一种ORM规范。 JPA通过 JDK 5.0 的 注解或XML 两
涂宗勋 认真生活,快乐工作,保持理想!https://blog.csdn.net/tuzongxun
相关文章
- Maven 如何打包 Spring Boot 项目
- Spring Boot 2.4 版本的系统运行要求
- Spring boot 的彩色日志
- 003-spring boot项目的项目属性配置
- 001-搭建spring boot项目
- 把spring-boot项目部署到tomcat容器中
- Spring Boot 项目打包 .exe 可执行程序,实战来了!
- Spring Boot 实现各种参数校验,写得太好了,建议收藏!
- Spring Boot 2.5.4 发布,2.2.x 正式结束使命!
- Spring Boot 项目优化和 JVM 调优(亲测!真实有效)
- 使用 Docker 部署 Spring Boot 项目,带劲!!
- Spring Boot 项目瘦身指南,瘦到不可思议!
- Spring Boot 最核心的 3 个注解详解
- spring boot疫情数据查看系统
- Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:2.0.1.RELEASE from https...
- spring boot 项目的创建
- spring boot Swagger2(version=2.7.0) 注解@ApiImplicitParam的属性dataType值为”自定义泛型“应用
- Spring Boot Admin-应用健康监控后台管理
- 【spring boot 系列】spring data jpa 全面解析(实践 + 源码分析)
- 一起学JAVA之《spring boot》03 - 开始spring boot基本配置及项目结构(转)
- 【项目精选】基于Spring Boot的综合性B2C电商平台--迷你天猫商城
- Spring Boot项目优雅的全局异常处理方式
- 喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了
- Spring Boot 支持 Https 有那么难吗?
- Spring Boot(五):Spring Boot项目配置详解
- Spring Boot + EasyExcel导入导出,简直太好用了!
- spring boot 更换logo图标