当前位置: 首页 > news >正文

学透Spring Boot — 015. 自废武功——关闭自动配置

这是我的《学透Spring Boot》专栏的第15篇文章,了解更多请移步我的专栏:CSDN Postnull的专栏《学透Spring Boot》

目录

遇到的问题

分析日志

自动配置的过程

解决报错

方法1:添加数据库配置

方法2:关闭JPA自动配置

总结


遇到的问题

有一天,我在pom.xml中引入了一些依赖,再次启动应用,发现启动报错了

分析日志

看日志,其实已经很明显了。

因为我们classpath下有数据库相关的类,但是却没有配置数据库。

比如

  • url
  • username & password
  • driver-class-name

自动配置的过程

这是因为我们在pom.xml中引入了数据库有关的依赖

然后Spring Boot在启动的过程中,会去尝试自动配置JPA。

它是通过读取org.springframework.boot.autoconfigure.AutoConfiguration.imports 这个文件,找到

JPA的自动配置类DataSourceAutoConfiguration

它的目的是为了自动创建和配置 dataSource这个对象。

这个配置类会根据条件来自动配置

可以打开spring boot的debug日志(debug=true)来查看这个配置类是否生效。

可以看到,这个JPA自动配置类是生效了的。

这个配置类去会配置DataSource

JPA默认使用的是Hikari数据源

然后去加载配置时,找不到驱动类配置,直接抛出异常,应用启动失败。

解决报错

方法1:添加数据库配置

有几种方案,第一种是添加数据库有关的配置。

application.properties

这样应用可以启动成功。各种JPA有关的Bean自动创建并配置。

方法2:关闭JPA自动配置

有时候,我们引入了JPA依赖,但是我们的数据库暂时挂了,我们想启动应用,测试其它非数据库交互的模块,这个时候怎么办呢?

我们可以暂时关闭JPA的自动配置

这样应用就可以启动了

需要注意的是,这样的关闭自动配置有时候会导致应用启动报错。

比如我们项目中已经添加了JPARepository的情况下

这时启动会报错:

总结

通过这个例子,我们应该可以更进一步地理解Spring Boot对JPA的自动配置。

相关文章:

  • Ubunut18.04 离线安装MySQL 5.7.35
  • Vue3 路由权限管理:基于角色的路由生成与访问控制
  • YOLOv1学习笔记
  • 2. Qt界面文件原理
  • Java面向对象编程详解
  • VUE中的CompositionAPI绑定
  • leetcode274.H指数
  • Java 知识点汇总(三)
  • Android Compose 中获取和使用 Context 的完整指南
  • 数字人分身源码搭建:支持OEM
  • 浅谈「分词」:原理 + 方案对比 + 最佳实践
  • c语言常见类型的范围到底是啥?
  • Ubertool 的详细介绍、安装指南及使用说明
  • 垃圾回收——三色标记法(golang使用)
  • python Socket编程
  • 典型的ETL使用场景与数据集成平台的应用
  • 2025-04-07 NO.3 Quest3 MR 配置
  • IDEA中Spring Boot项目接入MySQL数据库:从配置到CRUD实战
  • 密码学基础——分组密码的运行模式
  • 说话人分离中的聚类方法:深入解析Agglomerative聚类、KMeans聚类和Oracle聚类
  • 哈尔滨建立网站公司/网络营销的常用方法
  • 做男女的那个视频网站/企业网址
  • 长沙房产集团网站建设/石家庄网站建设seo
  • 做网站考虑的方面/建站系统软件有哪些
  • the7.3 wordpress/windows优化工具
  • 大连哪个公司做网站开发的/太原seo哪家好