【SpringBoot】二:自动配置

news2024/11/28 8:28:46

文章目录

  • 1.自动配置类
  • 2. @Import
  • 3. @AutoConfigurationImportSelector
  • 4. @AutoConfiguration

1.自动配置类

Spring Boot的自动装配机制会试图根据你所添加的依赖来自动配置你的Spring应用程序。

例如,如果你添加了Mysql依赖,而且你没有手动配置任何DataSource Bean,那么SpringBoot就会自动配置内存数据库。

你需要将 @EnableAutoConfiguration 或 @SpringBootApplication 注解添加到你的@Configuration 类中,从而开启自动配置功能。

例如之前ssm中使用Mybatis框架

<bean id="dataSource" class="xxxx.DruidDataSource">
  <property name="url" value="jdbc:mysql://localhost:3306/db"/>
  <property name="username" value="root">
</bean>
<bean id="sqlSessionFactory" class="xxx.SqlSessionFactory">
  <property name="dataSource" ref="dataSource"/>
</bean>

现在我们只需开启自动配置即可。
从类路径中,搜索相关的jar,根据jar的内容,尝试创建所需的对象,如果有mybatis.jar,尝试创建DataSource(根据配置文件中的url, username, password)连接数据库,还需要创建SqlSessionFactory, Dao接口的代理对象。这些开放人员不需要写一行代码,就能使用MyBatis框架了。

在这里插入图片描述

2. @Import

可以用来导入额外的配置类。

3. @AutoConfigurationImportSelector

AutoConfigurationImportSelector 间接实现了 ImportSelector 接口,导入自动配置类
自动配置从 jar 的指定文件读取要加载的配置类列表

自动配置类列表:(xxx.imports)
在这里插入图片描述

Spring Boot 之前的版本(2.7)读取 spring.factories 文件。 保留 spring.factories 为了向后兼
在这里插入图片描述
执行流程:
(Mybatis的自动配置类 XXXAutoConfiguration.class)
在这里插入图片描述
(MybatisProperties.class)
在这里插入图片描述
在这里插入图片描述

4. @AutoConfiguration

  • 新的注解@AutoConfiguration,用在自动配置类的上面。相当于增强的@Configuration,专注自动配置类。
  • @AutoConfiguration 还支持通过 after、afterNames、before 和 benameames 属性进行自动配置排序,决定多个自动配置类执行先后顺序.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/533172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从今天起,不再为 API 烦恼 !

做技术管理的童鞋&#xff0c;往往会陷入这样一种困境&#xff1a;疲于奔命&#xff0c;到处救火填坑&#xff0c;沟通推进&#xff0c;却挤不出时间思考对团队和项目来说真正重要的事情。 你有没有经历过这样的场景&#xff1a; 1. 下属老是改了接口但不维护文档&#xff0c;屡…

初探高并发—ExecutorCompletionService

初探高并发—ExecutorCompletionService 为什么要引入高并发 众所周知&#xff0c;程序中的代码是从下往下顺序执行的&#xff0c;当我们需要在一个方法中同时执行多个耗时的任务时所消耗时间就会大于等于这些任务消耗的累加时间。那么有没有一种办法可以让这些耗时的任务同时…

微信小程序入门04-后端脚手架搭建

我们上一篇已经介绍了权限系统的库表搭建&#xff0c;光有表还是不够的&#xff0c;我们还需要有一个后台系统和数据库进行交互。搭建后台的时候既需要选择使用什么语言&#xff0c;也需要选择框架。 框架分为前端框架和后端框架。在第一篇微信开发者工具搭建的时候我们其实前…

面试官:什么是防抖和节流?如何实现?应用场景?

防抖 与 节流 大厂面试题分享 面试题库 前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全 前言 防抖和节流作为很多大厂的经典面试题&#xff0c;问倒了许多小伙伴&a…

【Python-ESL】python-esl安装

pip install python-esl 时会报错&#xff1a; “error: command ‘swig’ failed with exit status 1” 报错原因是 因为 swig 软件未正确安装&#xff0c;当然对swig的版本也是有要求的&#xff0c;目前测试以下版本没有问题&#xff1a; swig3.0.63 python-ESL1.4.18(app-…

域名年龄查询工具-域名历史查询工具

批量域名历史查询工具 在近几年的网络营销中&#xff0c;老域名已经成为获取网站排名和SEO优化的重要途径。而对于购买这些老域名&#xff0c;了解域名的过往经历&#xff0c;可以帮助我们更好地评估域名的价值&#xff0c;并避免购买不良的域名。因此&#xff0c;今天我们将向…

微信小程序入门03-搭建权限系统,建库建表

我们准备零基础搭建一个小程序&#xff0c;小程序分为两部分&#xff0c;一个是用户访问的程序&#xff0c;可以是小程序也可以是H5。另外一个就是管理员使用的管理后台&#xff0c;后台第一个要实现的就是搭建权限系统。为了搭建权限系统&#xff0c;我们先需要梳理概念 1 RB…

Oracle自增序列探秘:一篇文章教你读懂

目录 1&#xff1a;什么是Oracle 自增长序列 2 &#xff1a;创建数据-->实现自增长序列 2.1 创建序列 2.2 使用序列 3 &#xff1a;查询数据-->实现自增长序列 1&#xff1a;什么是Oracle 自增长序列 Oracle自增长序列是一种生成唯一数字的方法&#xff0c;可以用于创…

NXP MCUXPresso - .h: No such file or directory

文章目录 NXP MCUXPresso - .h: No such file or directory概述备注END NXP MCUXPresso - .h: No such file or directory 概述 在尝试迁移 openpnp - Smoothieware project 从gcc命令行 MRI调试方式 到NXP MCUXpresso工程. 快摸进门了. 按照C工程编译的. 头文件路径都加好…

Wijmo 2023 Crack添加的一些改进

Wijmo 2023 Crack添加的一些改进 改进了对React 18的支持-增加了对Reack 18严格模式的支持&#xff0c;这有助于开发人员在开发过程中发现常见的错误。 可访问性改进-以下是本版本中添加的一些改进&#xff1a; 改进了FlexGridFilter弹出窗口&#xff0c;用于按条件和值进行筛选…

文本三剑客之——sed编辑器

sed编辑器 sed编辑器sed基础语法sed查询sed删除sed 替换sed 插入 sed编辑器 sed是文本处理工具&#xff0c;依赖于正则表达式&#xff0c;可以读取文本内容&#xff0c;工具指定条件对数据进行添加、删除、替换等操作&#xff0c;被广泛应用于shell脚本&#xff0c;以完成自动…

【交直流保护用HJZ-Y910静态中间继电器 性能稳定功耗小 JOSEF约瑟】

品牌&#xff1a;JOSEF约瑟&#xff0c;型号&#xff1a;HJZ-Y910&#xff0c;名称&#xff1a;静态中间继电器&#xff0c;额定电压&#xff1a;48220VDC&#xff1b;48415VAC&#xff0c;触点容量&#xff1a;250V/5A&#xff0c;功率消耗&#xff1a;≤5W&#xff0c;动作时…

Linux的常见指令(下)

常见指令以及权限理解&#xff08;下&#xff09; 基础指令的继续学习&#xff0c;本篇博客是对于Linux的大部分常见指令的学习和使用&#xff0c;指令的选项都是比较常用的&#xff0c;基本的复制移动&#xff0c;删除文件or目录&#xff0c;查看文件的三种方式cat、more、le…

区块链技术方向的就业前景

区块链技术是一个快速发展的领域&#xff0c;目前正在被越来越多的企业和组织广泛应用。区块链技术在金融、物流、医疗、社交媒体等众多领域都有着广泛的应用。因此&#xff0c;区块链技术方向的就业前景非常乐观。 区块链技术是新一代信息技术的重要组成部分&#xff0c;区块…

SpringBoot 发送邮件(四十三)

从头开始&#xff0c;并不意味着失败&#xff0c;相反&#xff0c;正是拥抱成功的第一步&#xff0c;即使还会继续失败 上一章简单介绍了 SpringBoot 整合 ES (四十二), 如果没有看过,请观看上一章 一. 发送邮件 关于发送邮件的功能和基础知识&#xff0c;老蝴蝶这儿就不重点…

NodeJs在Linux下使用的各种问题

环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs&#xff0c;而没有node命令 如果想避免这种情况请看下面连接的这种安装方式&#xff1a; 拓展见:Linux下Nodejs安装&#xff08;完整详细&#xff09; 如果想解决问题的话,输入下面的命令即可…

Sentinel-1的GRD和SLC数据的区别和联系

目录 01 前言 02 Sentinel1下载时的基本参数解释 2.1 卫星平台 2.2 产品类型 03 SLC数据和GRD数据的区别 3.1 处理过程的区别 3.2 处理操作的一点解释 3.2.1 为什么要做地形辐射校正&#xff1f; 3.2.2 多普勒地形校正和地形辐射校正的区别&#xff1f; 01 前言 最近…

【软考数据库】第十二章 事务管理

目录 12.1 事务的基本概念 12.2 数据库的并发控制 12.3 数据库的故障与恢复 12.3.1 事务故障 12.3.2 系统故障 12.3.3 介质故障 12.3.4 数据库备份 12.4 数据库的安全性与完整性 前言&#xff1a; 笔记来自《文老师软考数据库》教材精讲&#xff0c;精讲视频在b站&am…

B2B2C商城系统怎么挑选好?

B2B2C商城它不仅提供B2B模式下的批量交易&#xff0c;还为消费者提供了B2C模式的优质购物体验&#xff0c;因此&#xff0c;越来越多的企业或商家开始重视B2B2C商城系统的搭建&#xff0c;如目前的SHOP、Magento等商城系统。那么&#xff0c;如何挑选合适的B2B2C商城系统呢&…

接口自动化测试—如何实现多套环境的自动化测试?

在敏捷迭代的项目中&#xff0c;通常会将后台服务部署到多套测试环境。那么在进行接口自动化测试时&#xff0c;则需要将服务器的域名进行配置。使用一套接口测试脚本&#xff0c;通过切换域名地址配置&#xff0c;实现多套环境的自动化测试。 实战练习 分别准备两套测试环境…