【SpringCloud】基础问题
文章目录
- spring-cloud-dependencies和spring-cloud-alibaba-dependencies的区别
- <dependencyManagement>和<dependencies>的区别
- <dependencyManagement>
- <dependencies>
- 为什么在主函数上加上@SpringBootApplication注解就可以扫描到对象
- 为什么bootstrap.yml文件不是一个绿色的叶子
spring-cloud-dependencies和spring-cloud-alibaba-dependencies的区别
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope>
</dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope>
</dependency>
● spring-cloud-dependencies是管理spring-cloud的相关组件的版本,确保组件之间的兼容性,该依赖是springloud提供的,用于管理Spring Cloud Netflix 系列组件(如 Eureka、Ribbon、Hystrix 等)的版本
● spring-cloud-alibaba-dependencies:管理spring-cloud的相关组件的版本,该依赖是阿里巴巴提供,用于管理 Spring Cloud Alibaba 系列组件(如 Nacos、Sentinel、Dubbo 等)的版本。
和的区别
下的依赖是子模块可以直接继承的,子模块不需要在自己的pom中中引入相关依赖
下的依赖,子模块需要引入相关的依赖且不能指定版本号,父pom中必须要指定依赖的版本,这样子模块才能继承父pom中的依赖
作用:主要用于集中管理项目中的依赖版本。它不会直接引入依赖,而是定义了一组依赖的版本和范围,供子项目或模块使用。
使用场景:
当你有多个模块(如多模块 Maven 项目)时,可以在父 POM 中使用 来定义所有子模块共享的依赖版本。
这样可以确保所有模块使用相同的版本,避免版本冲突和不一致。
作用:用于直接定义项目所需的依赖。添加到这个部分的依赖会被立即引入到项目中。
使用场景:
当你需要在当前项目中实际使用某个依赖时,可以将其添加到 中。它会在构建时被下载并包含在项目中。
为什么在主函数上加上@SpringBootApplication注解就可以扫描到对象
@SpringBootApplication上还使用了@ComponentScan注解,该注解是扫描那个方法、类上使用了@Service,@Controller等这些注解,扫描到之后,就把相应的对象加载到IOC容器中
在 Spring Boot 中,使用 @SpringBootApplication 注解的主函数可以自动扫描和注册 Spring 管理的 Bean,这背后有几个关键的原因和机制:
- 组合注解
@SpringBootApplication 实际上是一个组合注解,它包含了以下三个注解:
@Configuration:标记该类为一个 Spring 配置类,允许它包含 Spring Bean 定义。
@EnableAutoConfiguration:启用 Spring Boot 的自动配置机制,让 Spring 根据应用所依赖的库自动配置项目。例如,如果在项目中引入了 Spring MVC,Spring Boot 会自动配置相关的 Bean,如 DispatcherServlet。
@ComponentScan:启用组件扫描,从主应用程序类的包及其子包中扫描带有 @Component、@Service、@Repository、@Controller 等注解的类。这样,Spring 就能发现这些类并将其注册为 Spring Bean。
- 包扫描
当你在主函数上加上 @SpringBootApplication 注解时,Spring Boot 会从该主类所在的包开始进行扫描。假设你的主类是 com.example.demo.Application,Spring 会扫描 com.example.demo 及其所有子包中的组件。 - Bean 的注册
被扫描到的类会被 Spring 自动实例化,并注册为 Spring 的 Bean,允许你在应用程序中通过依赖注入(Dependency Injection)来使用这些 Bean。 - 自动配置
@EnableAutoConfiguration 会根据你的项目依赖和类路径来提供默认配置。这意味着 Spring Boot 会自动配置一些常用的功能,比如数据库连接、MVC 设置等,减少了开发者手动配置的工作量。
为什么bootstrap.yml文件不是一个绿色的叶子
原因:项目中没有引用springcloud的依赖,只引入springcloudalibaba的依赖是不可以的。所以需要引入springcloud的依赖
文件类型:bootstrap.yml 是一个配置文件,用于配置 Spring Boot 的上下文加载,而绿色的叶子通常用来表示文件夹或其他资源类型。因此,IDE(如 IntelliJ IDEA)可能会使用不同的图标来表示不同类型的文件。
IDE 配置:不同的集成开发环境(IDE)或主题可能会对文件类型使用不同的颜色和图标。如果使用的是不支持 YAML 文件的主题或配置,可能不会显示为绿色叶子。
项目结构:bootstrap.yml 文件通常放置在 src/main/resources 目录下。如果项目结构不规范,IDE 可能无法正确识别文件类型。
文件内容:如果 bootstrap.yml 文件的内容存在错误,IDE 可能会标记该文件,而不是正常显示图标。
相关文章:
【SpringCloud】基础问题
文章目录 spring-cloud-dependencies和spring-cloud-alibaba-dependencies的区别<dependencyManagement>和<dependencies>的区别<dependencyManagement><dependencies> 为什么在主函数上加上SpringBootApplication注解就可以扫描到对象为什么bootstrap…...

牛客网刷题(1)(java之数据类型、数组的创建(静态/动态初始化)、static关键字与静态属性和方法、常用的servlet包、面向对象程序设计方法优点)
目录 一、Java变量的数据类型。 <1>Java中变量的数据类型。 <2>基本数据类型。 <3>引用数据类型。 二、Java中一维数组的初始化。(静态、动态初始化) <1>数组。 <2>动态初始化。 <3>静态初始化。 三、看清代码后&am…...

电磁干扰(EMI)与电磁兼容性(EMC)【小登培训】
电磁干扰(EMI)和电磁兼容性(EMC)是每个产品在3C ,CE认证过程中必不可少的测试项目: 一、电磁干扰(EMI) EMI(Electromagnetic Interference)是指电子设备在工作…...

保险行业的智能客服:企业AI助理与知识库的加速效应
在保险行业,客户服务是企业与客户之间建立信任与忠诚度的关键桥梁。随着人工智能技术的飞速发展,企业AI助理正逐步成为保险客服领域的重要革新力量。 一、AI助理:保险客服的新篇章 企业AI助理,以其强大的自然语言处理能力、数据分…...

PSINS工具箱函数介绍——inserrplot
关于工具箱 i n s e r r p l o t inserrplot in...

龙蟠科技业绩压力显著:资产负债率持续攀升,产能利用率也不乐观
《港湾商业观察》施子夫 黄懿 去年十月至今两度递表后,10月17日,江苏龙蟠科技股份有限公司(以下简称,龙蟠科技;603906.SH,02465.HK)通过港交所主板上市聆讯。 很快,龙蟠科技发布公告称,公司全…...
使用 Spring Cloud 有什么优势?
使用 Spring Cloud 有什么优势? 在当今的微服务架构时代,Spring Cloud 作为一个强大的开发框架,备受开发者青睐。那么,使用 Spring Cloud 究竟有哪些优势呢? 一、微服务架构简介 微服务架构是一种将单一应用程序拆分…...

MySQL 日志之 binlog 格式 → 关于 MySQL 默认隔离级别的探讨
开心一刻 image 产品还没测试直接投入生产时,这尼玛... 背景问题 再讲 binlog 之前,我们先来回顾下主流关系型数据库的默认隔离级别,是默认隔离级别,不是事务有哪几种隔离级别,别会错题意了 1、Oracle、SQL Server 的默…...

SQL进阶技巧:Hive如何进行更新和删除操作?
目录 0 Hive支持更新和删除操作吗? 1 Hive删除操作如何实现? 2 Hive更新操作如何实现? 3 小结 0 Hive支持更新和删除操作吗? Hive在默认情况下不支持更新和删除操作,但可以通过特定方式如使用ORCFileformat和Acid…...
nginx安装详解含 自动化编译安装 Debian/Ubuntu/CentOS/RHEL/ROCKY
1. 准备工作 1.1 选择操作系统 推荐操作系统:Ubuntu、CentOS、Debian等Linux发行版。系统要求:确保服务器有足够的CPU、内存和磁盘空间。 1.2 更新系统 更新包列表: sudo apt update # 对于Debian/Ubuntu sudo yum update # 对于CentOS…...
Go编程语言介绍及项目案例
Go(又称 Golang)是一种开源的编程语言,具有高效、简洁、并发性能强等特点。 一、主要特点 简洁高效: Go 语言的语法简洁明了,代码风格清晰易读。它摒弃了一些传统编程语言中的复杂特性,如继承、泛型等,使得代码更加简洁高效。例如,在 Go 语言中,函数的定义非常简洁,…...
刷爆leetcode Day11 DFS
DFS 1. 汉诺塔(easy)2. 合并两个有序链表(easy)3. 反转链表(easy)4. 两两交换链表中的节点(medium)5. Pow(x,n)-快速幂(medium) 1. 汉诺塔&#x…...
虚拟机不同网络模式的区别
网络模式 NAT模式 (可以上网) 使用NAT模式的虚拟机都和物理机VMnet8处于同一个网段 桥接模式 (可以上网) 使用桥接模式的虚拟机都和物理机网卡处于同一网段 仅主机模式 (不能上网,完全隔离࿰…...
嵌入式软件 Bug 排查与调试技巧
目录 1、准备工作 2、打印调试 实现步骤 注意事项 3、断点调试 4、观察点调试 5、远程调试 6、内存分析 内存泄漏检测 栈溢出检测 7、异常处理 8、性能分析 9、逻辑分析仪 10、示波器 11、常见bug类型 12、调试策略 1、准备工作 硬件工具准备 调试器:例如 J - …...

阿里云环境下用docker搭建redis主从复制
redis主从复制可将主redis中的数据同步到从redis中,具有读写分离、容灾恢复、数据备份、支持高并发等特性。 本文演示在阿里云环境下,用 docker 搭建 redis 主从复制(一主二从)的操作过程。 一、环境准备 阿里云安装CentOS7.9 6…...
STM32 从0开始系统学习 1
笔者最近打算使用STM32系统的做一点东西。大二的时候就开始慢慢接触了STM32,拿他来做过一些事情,但是始终是葫芦吞枣,有点不扎实。笔者这里打算重新开始好好整理一下STM32的内容。 在这一笔记中很简单,就是解答一下啥是STM32&…...

python-numpy-笔记1
numpy官网NumPy User Guide 启动终端jupyter notebook 1.进入CMD输入jupyter notebook --enter--等待结束,使用Edge打开后出现jupyter的网页...

云+AI 时代的 OceanBase
2024 年 10 月 23 日,OceanBase 年度发布会在北京成功举办。会上,CEO 杨冰表示,OceanBase将继续践行一体化产品战略,不断演进产品能力,从支撑关键业务负载的OLTP能力,到实时分析的AP能力,再到应…...

【C++】vector使用详解
本篇我们来介绍STL的vector的内容。vector其实就是顺序表,vector的学习还是分为接口使用和模拟实现两大部分,本片就是介绍一下vector的使用。 1.vector的介绍及使用 vector文档介绍:vector - C Reference 在使用时需要加头文件#include <…...

.NET Core WebApi第5讲:接口传参实现、数据获取流程、204状态码问题
一、接口传参实现 1、引入:通过网址上两个参数mod...和FID....,区分开要的是哪个板块里面的数据 2、传参实现:在方法的参数处定义STRING字符串 (1)传1个参数 2>运行代码,在网页上输入以“点…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...