【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,这背后有几个关键的原因和机制:

  1. 组合注解
    @SpringBootApplication 实际上是一个组合注解,它包含了以下三个注解:

@Configuration:标记该类为一个 Spring 配置类,允许它包含 Spring Bean 定义。

@EnableAutoConfiguration:启用 Spring Boot 的自动配置机制,让 Spring 根据应用所依赖的库自动配置项目。例如,如果在项目中引入了 Spring MVC,Spring Boot 会自动配置相关的 Bean,如 DispatcherServlet。

@ComponentScan:启用组件扫描,从主应用程序类的包及其子包中扫描带有 @Component、@Service、@Repository、@Controller 等注解的类。这样,Spring 就能发现这些类并将其注册为 Spring Bean。

  1. 包扫描
    当你在主函数上加上 @SpringBootApplication 注解时,Spring Boot 会从该主类所在的包开始进行扫描。假设你的主类是 com.example.demo.Application,Spring 会扫描 com.example.demo 及其所有子包中的组件。
  2. Bean 的注册
    被扫描到的类会被 Spring 自动实例化,并注册为 Spring 的 Bean,允许你在应用程序中通过依赖注入(Dependency Injection)来使用这些 Bean。
  3. 自动配置
    @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 可能会标记该文件,而不是正常显示图标。

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

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

相关文章

深入理解Java虚拟机(五)

介绍垃圾收集器的算法及引用详解 1、引用计数器 引用计数器在对象中添加一个引用计数器&#xff0c;当一个地方引用的时候&#xff0c;计数器1&#xff0c;当引用失效时&#xff0c;计数器值就-1。 但是在Java里面存在对象循环引用&#xff1a;objA 和 objB都有字段instance…

Linux系统操作篇 one -文件指令及文件知识铺垫

Linux操作系统入门-系统篇 前言 Linux操作系统与Windows和MacOS这些系统不同&#xff0c;Linux是黑屏的操作系统&#xff0c;操作方式使用的是指令和代码行来进行&#xff0c;因此相对于Windows和MacOS这些带有图形化界面的系统&#xff0c;Linux的入门门槛和上手程度要更高&…

PostgreSQL的奥秘:表结构、TOAST与大对象

PostgreSQL&#xff08;以下简称PSQL&#xff09;因其灵活性和强大的功能深受欢迎。本文将详细介绍PSQL的内部结构&#xff0c;特别是页面缓冲机制&#xff0c;包括表结构、TOAST技术、大对象&#xff08;BLOB/CLOB&#xff09;&#xff0c;以及页面缓冲表的工作原理。同时&…

Linux操作系统密码忘记了怎么办 这个方法你可以试试 屡试不爽

如果忘记了CentOS 7系统的root用户密码&#xff0c;你可以通过单用户模式来重置密码。 重启CentOS 7系统操作系统。 当GRUB菜单出现时&#xff0c;选择你想要恢复密码的那个内核版本&#xff0c;并在该选项上按 e 键进入编辑模式。 在编辑界面中找到以 linux16 或 linux 开头…

SQL Server 可观测最佳实践

SQL Server 简介 SQL Server 是微软公司开发的一款关系数据库管理系统&#xff0c;支持企业 IT 环境中的各种事务处理、商业智能和分析应用程序。它支持多种操作系统平台&#xff0c;而无论是物理还是虚拟形式&#xff0c;自建部署环境还是在云环境中&#xff0c;运行的操作系…

MySQL8 安装配置及卸载教程

MySQL8 安装配置及卸载教程 0 卸载 MySQL 如果之前没安过 MySQL &#xff0c;或者卸载干净了不用看这个。 如果安装中出现以下问题&#xff0c;有可能是为之前安装 MySQL 不成功&#xff0c;有残留的安装程序等文件程序或者是卸载 MySQL 不成功。 0.1 停止服务 首先进入服务…

大数据-194 数据挖掘 机器学习理论 有监督、无监督、半监督、强化学习

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

2942. 查找包含给定字符的单词 原生写法和api调用

2942. 查找包含给定字符的单词 给你一个下标从 0 开始的字符串数组 words 和一个字符 x 。 请你返回一个 下标数组 &#xff0c;表示下标在数组中对应的单词包含字符 x 。 注意 &#xff0c;返回的数组可以是 任意 顺序。 示例 1&#xff1a; 输入&#xff1a;words ["le…

Java最全面试题->数据库/中间件->KafKa面试题

文章目录 KafKaKafka中的ISR、AR代表什么?ISR的伸缩指什么?kafka中的broker 是干什么的?kafka中的 zookeeper 起到什么作用?kafka follower如何与leader同步数据?kafka 为什么那么快?kafka producer如何优化打入速度?kafka producer发送数据,ack为0,1,-1分别是什么意…

代码随想录第46天|

#include<bits/stdc.h> using namespace std; //定义小顶堆 class mycomparison{public:bool operator()(const pair<int,int> &lhs,const pair<int,int> &rhs){return lhs.second>rhs.second;} }; //定义一个姐沟通储存带权重的边 struct Edge{i…

兼容Lodash的真正替代者

大家好&#xff0c;我是农村程序员&#xff0c;独立开发者&#xff0c;前端之虎陈随易。 这是我的个人网站&#xff1a;https://chensuiyi.me&#xff0c;欢迎一起交朋友~ 今天给大家分享一个前端工具库 Lodash 的替代品 es-toolkit。 仓库地址&#xff1a;https://github.com…

鼠标增强工具 MousePlus v5.3.9.0 中文绿色版

MousePlus 是一款功能强大的鼠标增强工具&#xff0c;它可以帮助用户提高鼠标操作效率和精准度。该软件可以自定义鼠标的各种功能和行为&#xff0c;让用户根据自己的习惯和需求来调整鼠标的表现。 详细功能 自定义鼠标按钮功能&#xff1a;可以为鼠标的各个按钮设置不同的功能…

基于SpringBoot+Vue+MySQL的中药材进存销管理系统

系统展示 系统背景 中药材在医疗保健领域具有重要地位&#xff0c;随着中药材市场的不断发展&#xff0c;对中药材的进存销管理提出了更高的要求。传统的管理方式效率低下&#xff0c;容易出现错误和漏洞&#xff0c;无法满足快速发展的市场需求。因此&#xff0c;开发一套集成…

C#DLL热加载|动态替换

我有一个项目 开始取数据和结束数据部分是一样的&#xff0c;但中间处理数据是根据客户需求来转换的 又要求增加一个客户数据转换 主程序是不能停下来的 所以这个项目转数据转换部分做成插件式 每个客户的数据转换都是一个项目 都是一个DLL 主程序里面定义好接口类或者抽象…

Nginx+Tomcat 动静分离

1. NginxTomcat 环境 Nginx 处理静态资源的优势同样可以应用在 Tomcat 环境中 。从实现方法上来说&#xff0c;NginxTomcat 环境的搭建思路与前面完成的 NginxApache 环境是完全相同的&#xff0c;只需要将 Nginx 与 Tomcat 的站点文档目录配置到同一目录下&#xff0c;利用 N…

什么是SMO算法

SMO算法&#xff08;Sequential Minimal Optimization&#xff09; 是一种用于求解 支持向量机&#xff08;SVM&#xff09; 二次规划对偶问题的优化算法。它由 John Platt 在 1998 年提出&#xff0c;目的是快速解决 SVM 的优化问题&#xff0c;特别是当数据集较大时&#xff…

npm安装过程的问题

报错信息C:\Users\lyyds>npm list -global npm error code ENOENT npm error syscall lstat npm error path D:\nodejs\node_global npm error errno -4058 npm error enoent ENOENT: no such file or directory, lstat D:\nodejs\node_global npm error enoent This is rel…

数通自学——VLAN虚拟局域网,eNSP实验讲解

VLAN虚拟局域网&#xff0c;eNSP实验讲解 一、概念二、eNSP仿真实验1、实验一&#xff1a;vlan演示&#xff08;交换机端口access模式&#xff09;2、实验二&#xff1a;vlan演示&#xff08;交换机端口trunk模式&#xff09; 一、概念 VLAN&#xff08;Virtual Local Area Ne…

HarmonyOS应用开发者中级认证——中级闯关习题参考答案大全

文章目录 HarmonyOS第一课 ArkUI进阶判断题单选题多选题 HarmonyOS第一课 应用程序框架进阶判断题单选题多选题 HarmonyOS第一课 合理使用动画和转场判断题单选题多选题 HarmonyOS第一课 Web组件和WebView判断题单选题多选题 HarmonyOS第一课 给应用添加通知和提醒判断题单选题…

SQL-lab靶场less1-4

说明&#xff1a;部分内容来源于网络&#xff0c;如有侵权联系删除 前情提要&#xff1a;搭建sql-lab本地靶场的时候发现一些致命的报错&#xff1a; 这个程序只能在php 5.x上运行&#xff0c;在php 7及更高版本上&#xff0c;函数“mysql_query”和一些相关函数被删除&#xf…