@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})的应用场景
exclude,排除此类的AutoConfig,即禁止 SpringBoot 自动注入数据源配置。
需要使用@SpringBootApplication的3个场景是:
一.场景1
比如在项目中,公共模块里包含的有数据库等的Jar包,当其它子模块引入该公共模块时就会同时引入了数据库的Jar包,这时候SpringBoot检测到有数据源就会尝试加载它,但是本身又没有进行数据库相关的配置,就会报下面的问题:
二.场景2
有时候数据源的相关配置比如数据库的相关配置是动态加载的,而不是写死在文件中,SpringBoot就会使用Jar包默认的配置,也会报错,这时候使用@SpringBootApplication注解禁止自动注入,转为手动注入
三.场景3
exclude,排除此类的AutoConfig,即禁止 SpringBoot 自动注入数据源配置。
DataSourceAutoConfiguration.class 会自动查找 application.yml 或者 properties 文件里的 spring.datasource.* 相关属性并自动配置单数据源「注意这里提到的单数据源」。
那么问题来了,排除了自动配置,Spring还怎么识别到数据库配置呢?
答:显然接下来就需要手动配置,what?那我为什么要排除?然后手动指定数据源?
如果你发现项目中存在这个排除的骚操作,可以在项目中搜一下Java关键字@ConfigurationProperties("spring.datasource ,你可能会发现手动配置数据源的类。
再来回答为何要手动配置数据源,因为要配置多数据源,上边有提到DataSourceAutoConfiguration.class默认会帮我们自动配置单数据源,所以,如果想在项目中使用多数据源就需要排除它,手动指定多数据源。
场景3的例子转自:https://blog.csdn.net/jinrucsdn/article/details/106539916
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})的应用场景相关推荐
- @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})注解作用
有小伙伴在群里问到对 @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class}) 有点疑惑,故记之. exclude, ...
- @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
在学习boot 项目的时候 ,发现在启动类中有一个这个的注解 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) ...
- springboot源码(二)@SpringBootApplication注解中exclude参数使用及原理
文章目录 一.使用姿势 二.运行原理 上篇文章中, <springboot源码(一)启动流程+自动配置原理分析>,简单分析了启动流程,其中涉及到了@SpringBootApplicatio ...
- Spring Boot整合ActiveMQ及场景举例(点对点模式、订阅模式)
目录 前序 为什么要引入MQ 注册案例--不使用MQ 注册案例--引入MQ(点对点模式) 注册案例--引入MQ(发布/订阅模式) 安装Active MQ 使用Spring Boot进行整合(点对点模式 ...
- Java常用注解以及使用场景示例
Java注解定义 Java注解是Java编程语言中的一种特殊形式的元数据,它们可以用于为程序的各个元素(例如类.方法.字段等)添加额外的信息和属性.注解是在Java 5中引入的,通过在代码中使用注解, ...
- springboot扫描组件_SpringBoot入口类和@SpringBootApplication详解
SpringBoot项目创建完成之后默认会生成一个*Application的入口类,通过该类的main方法即可启动SpringBoot项目. @SpringBootApplication(exclud ...
- spring boot 会默认加载DataSourceAutoConfiguration这个类
spring boot 会默认加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration这个类, 而DataSo ...
- active mq topic消费后删除_Spring cloud stream 整合mq
说明:本案例win10环境 测试scs(spring cloud stream)整合kfk(kafka)/rbt(rabbitmq)消息生产消费场景 流程 一.准备中间件环境(kfk/rbt) 后续内 ...
- SpringBoot面试题及答案 110道(持续更新)
最新SpringBoot面试题[附答案解析]SpringBoot面试题及答案,SpringBoot最新面试题及答案,SpringBoot面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是 ...
- 惊呆了,Spring中竟然有12种定义bean的方法
前言 在庞大的 Java 技术体系中,Spring 有着举足轻重的地位,它给每位开发者带来了极大的便利和惊喜. 我们都知道 Spring 是创建和管理bean的工厂,它提供了多种方式定义 bean,能 ...
最新文章
- 月薪没到30K的程序员必须要背的面试八股文,我先啃为敬。。。
- MPB:扬州大学王梦芝组-反刍动物瘤胃原虫18S rRNA测序分析技术
- 来不及想标题了,我要去打包收藏了 | 本周值得读
- 程序员深夜啪啪啪真相,看完笑翻!
- python3.6使用mysql_Python之——Python3.6连接MySQL
- 韩国浦项化学在中国斥资超2800亿韩元投建电动车电池材料厂
- 转移服务器显示乱码,两台服务器之间数据传输乱码问题
- 左神-05 二分搜索(多看几遍)
- HTTP权威指南-概述
- 系统架构设计笔记(19)—— 网络存储技术
- 页面中多次使用TWEEN.update()的坑
- android windows 共享文件,安卓手机如何访问电脑局域网共享的文件
- Altium Designer 多引脚元件快速画法 Smart Grid Insert
- dev C++遇到endl无法调试的解决方法
- 2022 极术通讯-安谋科技“星辰”STAR-MC2处理器初探
- 二维码编码库qrencode
- 最新轻量级精简风小说网站源码+支持WAP端
- dumpsys activity 相关命令解析
- AMD CPU无法安装Intel HAXM解决方法
- 22 Rest高级客户端实践(八):滚动搜索