Springboot是什么

news/2024/11/30 18:40:34/

目录

为什么会要用springboot

1、之前

2、现在

springboot优点

springboot四大核心

自动装配介绍

1、自动装配作用是什么

2、自动装配原理

springboot starter是什么

1、starter作用

2、比如:我们想搭建java web框架

3、starter原理

@SpringBootApplication注解

1、@SpringBootConfiguration

2、@EnableAutoConfiguration

3、@ComponentScan

为什么会要用springboot

1、之前

  • 搭建一个 WEB 项目需要集成很多组件,比如sping、 spring mvc 、mybatis框架、Tomcat 这种 WEB 容器、日志框架、连接数据库要选择连接池等等,特别麻烦。而且几十个微服务重复这些脚手架操作,简直是灾难.

需要:

  • 安装tomcat、注意版本和当前的spring版本是否兼容
  • 引入spring各个模块的依赖
  • web.xml配置servlet、拦截规则、字符编码器等等
  • applicationContext.xml,springmvc.xml 等一大堆xml配置文件文件

 参考 快速搭建SSM项目_ssm项目搭建_秋泠鸢的博客-CSDN博客

2、现在

  • 为了简化 Spring 应用的初始项目搭建以及开发过程,发挥它开箱即用的特质。SpringBoot 为 Java 企业级开发的一站式解决方案。springboot中最重要的特性自动装配,很好的解决了以上问题。
  • 多个微服务之间再通过 Spring 全家桶里面的 SpringCloud 进行管理,比如服务注册、服务发现等等。

springboot优点

1、springboot集成了大量常用的第三方库配置,所有你想集成的常用框架,它都有对应的组件支持,例如 Redis、MongoDB、Jpa、kafka,Hakira 等等。SpringBoot 应用中这些第三方库几乎可以零配置地开箱即用,大部分的 SpringBoot 应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑

1、自动装配:快速搭建独立运行的Spring项目以及与主流框架集成,简化开发

2、starter:提供一系列的starter来简化Maven配置,将常用的依赖分组并将其合并到一个依赖中,这样就可以一次性将相关依赖添加到Maven中

(1)快速创建独立运行的Spring项目以及与主流框架集成
(2)使用嵌入式的Servlet容器,应用无需打成WAR包
(3)Starters自动依赖与版本控制
(4)大量的自动配置,简化开发,也可修改默认值
(5)无需配置XML,无代码生成,开箱即用
(6)准生产环境的运行时应用监控
(7)与云计算的天然集成

springboot四大核心

  1.  自动装配:
  2. 起步依赖:场景启动器(starter)
  3. Actuator:健康检查等监控
  4. 命令行界面

自动装配介绍

1、自动装配作用是什么

springboot的自动装配实际上就是为了从spring.factories文件中获取到对应的需要进行自动装配的类,并生成相应的Bean对象,然后将它们交给spring容器来帮我们进行管理。

2、自动装配原理

SpringBoot所有自动配置类都是在启动的时候进行扫描并加载,通过spring.factories可以找到自动配置类的路径,但是不是所有存在于spring.factories中的配置都进行加载,而是通过@ConditionalOnClass注解进行判断条件是否成立(只要导入相应的stater,条件就能成立),如果条件成立则加载配置类,否则不加载该配置类。

【146期】面试官:你能说出SpringBoot自动装配的原理吗

springboot starter是什么

1、starter作用

引入模块所需的相关jar包,自动装配各自模块所需的属性。使用springboot后集成常用的第三方框架变得非常简单了。

2、比如:我们想搭建java web框架

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

3、starter原理

SpringBoot的starter到底是什么?

 

@SpringBootApplication注解

1、@SpringBootConfiguration

这个注解包含了@Configuration,@Configuration里面又包含了一个@Component注解,也就是说,这个注解标注在哪个类上,就表示当前这个类是一个配置类,而配置类也是spring容器中的组件

2、@EnableAutoConfiguration

开启自动配置功能

  • @AutoConfigurationPackage

        主配置类的包以及子包里面的所有组件扫描并加载到spring的容器中        

  • @Import(AutoConfigurationImportSelector.class)

将需要自动装配的类以全类名的方式返回,需要自动装配的类,通过查找所有在META-INF路径下的spring.factories文件获得。


3、@ComponentScan

这个注解的作用就是扫描当前包及子包的注解

参考:

【146期】面试官:你能说出SpringBoot自动装配的原理吗

springboot项目搭建

SpringBoot框架_星悦糖的博客-CSDN博客


http://www.ppmy.cn/news/35872.html

相关文章

macOS 13.3(22E252)/12.6.4/11.7.5正式版发布

系统介绍 3 月 28 日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS 13.3 更新&#xff08;内部版本号&#xff1a;22E252&#xff09;苹果今天还发布了macOS Monterey 12.6.4和macOS Big Sur 11.7.5&#xff0c;本次更新距离上次发布隔了 42 天。 macOS Ventura 带来…

【Docker学习笔记】8.Docker Compose

Docker Compose Compose 简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose&#xff0c;您可以使用 YML 文件来配置应用程序需要的所有服务。然后&#xff0c;使用一个命令&#xff0c;就可以从 YML 文件配置中创建并启动所有服务。 如果你还不了解 …

【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字 p205 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/ 1. 题目介绍&#xff08;39. 数组中出现次数超过一半的数字&#xff09; 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 你可…

Android的linux内核解耦

android设备内核部分&#xff0c;除android定制性修改外还有芯片供应商、ODM/OEM的修改&#xff0c;为了隔离他们的影响&#xff0c;做了内核解耦部分内容。1、boot内容查看Boot Image Header&#xff0c;version 2版本包含内容最多&#xff0c;包括了内核、设备树、根目录、re…

昇腾AI机器人发布,12家企业、5家高校签约,昇腾AI开发者创享日全国巡展沈阳首站成功举办

“创未来&#xff0c;享非凡”昇腾AI开发者创享日2023年全国巡回首站活动成功举办&#xff0c;本次活动由辽宁省科技厅指导&#xff0c;由沈阳市科技局、浑南区人民政府、沈阳高新区管理委员会、华为技术有限公司共同主办&#xff0c;沈阳昇腾人工智能生态创新中心承办&#xf…

一文快速回顾 Java 操作数据库的方式-JDBC

前言 数据库的重要性不言而喻&#xff0c;不管是什么系统&#xff0c;什么应用软件&#xff0c;也不管它们是 Windows 上的应用程序&#xff0c;还是 Web 应用程序&#xff0c;存储&#xff08;持久化&#xff09;和查询&#xff08;检索&#xff09;数据都是核心的功能。 大…

【云原生】初识 Kubernetes — pod 的前世今生

目录标题前言&#x1f433; Kubernetes到底是什么&#xff1f;&#x1f42c; K8s 的由来&#x1f42c;K8s 的工作方式&#x1f42c; K8s 主要组件&#x1f40b;Master 组件&#x1f40b;Node 组件&#x1f433; pod 是什么&#xff1f;&#x1f42c;pod 的概念&#x1f42c;控制…

【pytorch】深度学习模型调参策略(五):采用贝叶斯工具进行最优参数搜索及最佳步数确认

目录1.如何决定是否应用某个新的超参数配置2.参数优化工具optuna确定最终最优配置为什么在调整的探索阶段使用准随机搜索而不是更复杂的黑盒优化算法&#xff1f;optuna库简介pytorch实现代码搜索参数详解输出结果3.确定每次训练运行的步数使用学习率扫描选择max_train_steps初…