Springboot是什么

news2024/12/24 2:50:16

目录

为什么会要用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.coloradmin.cn/o/404334.html

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

相关文章

ROS小车研究笔记3/11/2023:多点导航及其源码实现

多点导航操作 打开导航launch文件 roslaunch turn_on_wheeltec_robot navigation.launch rviz 在rviz里&#xff0c;选择publish point在地图上点击标记目标点。在标记多个目标点后小车会按标记顺序依次在各个目标点中往返 多点导航对于话题MarkerArray。需要在rviz中使marke…

网页基本标签、图像标签、链接标签、块内元素和块元素、列表标签、表格标签

一、网页基本标签 标题标签 段落标签 未写段落标签前&#xff0c;文本没有按照想要的格式排列显示 写段落标签后&#xff1a; 每句都是一段&#xff0c;所以句与句距离比较宽 换行标签 同一段&#xff0c;只是把文字换行&#xff0c;所以比较紧凑 水平线标签 字体样式标签 …

【深度学习】神经网络和深度学习--卷积和池化的作用

深度学习通常指训练大型深度的神经网络的过程。 与传统的神经网络模型相比&#xff0c;深度学习模型在结构上与之非常相似&#xff1b;不同的是&#xff0c;深度学习模型的“深度”更大&#xff0c;“深度”的体现就是神经网络层数多&#xff0c;神经网络每一层的结点数多。 本…

# 关于Docker容器中时间时区问题的测试

关于Docker容器中时间时区问题的测试 文章目录关于Docker容器中时间时区问题的测试1 基础知识1.1 /etc/localtime1.2 /etc/timezone2 我在gitlab中遇到的问题与解决方法3 ubuntu官方镜像时区相关问题的测试3.0 官方原版测试3.1 不设置任何参数测试3.2 只设置TZ"Asia/Shang…

Spring Cloud Gateway 监控、多网关实例路由共享 | Spring Cloud 18

一、监控 Actuator是Spring Boot提供的用来对应用系统进行监控的功能模块&#xff0c;借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。 Actuator的核心是端点Endpoint。 Endpoint可以让我们监视应用程序并与其交互。Spring Boot包含许多内置端点…

rapidcsv 写csv文件实例

csv实质是一个文本文件&#xff0c;可以使用rapidcsv写文件操作&#xff0c;如下实例&#xff1a; 第一行实质是从-1行开始&#xff0c;列是从0开始 #include "rapidcsv.h" #include <string> using namespace std; void CMFCApplication1Dlg::OnBnClickedBu…

【flask】URL和视图映射

目录 首页 传参 URL数据类型 get传参 首页 url与视图函数的映射是通过app.route()装饰器实现的。 只有一个斜杠代表的是根目录——首页。 传参 URL传参是通过<参数名称>的形式进行传递。URL中有几个参数&#xff0c;在视图函数中也要指定几个参数 from flask im…

WattOS:一个稳又快的轻量级 Linux 发行版

导读Linux 领域里的每个人不是听说过就是使用过某个轻量级的 Linux 发行版。大家都知道我们不断追求的是&#xff1a;占用内存少&#xff0c;配置资源要求低&#xff0c;包含一个轻量级的桌面环境&#xff08;或者窗口管理器&#xff09;&#xff0c;并且提供和其他发行版相似的…

从官网下载/处理 MNIST 数据集,并构造CNN网络训练

这里写自定义目录标题MNIST 网络 测试用1. 导入所需要的模块2. 下载 MNIST 数据集3. 读取 MNIST 数据集MNIST 网络 测试用 1. 导入所需要的模块 import sys sys.path.append(../../) from zfdplearn import fdutils, fdtorch_net, fddata import os import os.path as path i…

# 数据完整性算法在shell及python中的实践

数据完整性算法在shell及python中的实践 文章目录数据完整性算法在shell及python中的实践1 预备知识1.1 摘要算法1.2 报文&#xff08;数据&#xff09;完整性校验1.3 python byte类型字符串与普通字符串区别2 传统方法&#xff08;散列函数&#xff09;2.1 在shell中实践2.2 在…

python调试模块ipdb

1. 调试python ipdb是用来python中用以交互式debug的模块&#xff0c;可以直接利用pip安装; 其功能类似于pycharm中 python控制台&#xff0c; 而使用ipdb 的优点&#xff0c;便是直接在代码中调试&#xff0c; 避免了在python控制台&#xff0c;或者重新设置一些简单变量。…

Web前端开发--自用

第一章 1.1 时间&#xff1a;1980 人物&#xff1a;Tim Berners-Lee 地点&#xff1a;欧洲核子研究组织中最大的欧洲核子物理实验室 事件&#xff1a;与Robert Cailliau建立ENQUIRE系统 1984年&#xff0c;世界上第一个客户端浏览器&#xff08;World Wide Web&#xff09;和第…

软考高项——配置管理

配置管理配置管理配置管理6个主要活动配置项配置基线配置项的状态配置库配置库权限管理配置审计配置管理 配置管理的总线索包括&#xff1a; 1&#xff09;配置管理6个主要活动 2&#xff09;配置项 3&#xff09;配置基线 4&#xff09;配置项的状态 5&#xff09;配置库 6&a…

SAP SQVI快速报表的使用

SQVI快速报表 一、说明 对数据表进行查询通常使用SE16&#xff0c;但只限于单张表&#xff0c;对于多表联动的查询&#xff0c;则需要通过创建Query的方式&#xff0c;方法有多种&#xff0c;而SQVI是一种简洁快速的工具。SQVI全称是Quick Viewer&#xff0c;可以快速生成多表…

动态规划回文子串

647. 回文子串方法&#xff1a;双指针回文子串有长度为奇数和偶数两种&#xff0c;extend(s, i, i, n); extend(s, i, i 1, n);就分别对应长度为奇数和偶数的情况class Solution { private:int extend(const string& s, int i, int j, int n) {int res 0;while (i > 0…

前端——8.超链接标签

这篇文章&#xff0c;我们来讲一下超链接标签 目录 1.超链接标签介绍 1.1链接的分类 2.具体案例讲解 2.1外部链接 2.2 内部标签 2.3 空链接 2.4下载连接 2.5网页元素链接 2.6锚点标签 3.小结 1.超链接标签介绍 超链接标签是HTML中一个十分重要的标签&#xff0c;下…

案例18-面向对象之开门小例子

目录 一&#xff1a;背景介绍 二&#xff1a;思路&方案 1.面向过程 2.面向对象 3.面向对象(反射) 三&#xff1a;过程 1.面向过程&#xff1a;原本何老师的作用交给我了米老师来完成。 2.面向对象&#xff1a;把开门的方法完全交个何老师&#xff0c;米老师不需要有…

k8s 部署 skywalking 并持久化到es

1、k8s中安装部署 skywalking skywalking集群情况下需要保证用同一数据源&#xff0c;这里我们存储方式改为es 1.1 部署elasticsearch docker run -it -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS"-Xms256m -Xmx256m" -e "discovery.typesingle-node"…

DSRC技术

DSRC(Dedicated Short Range Communication)专用短程通信 定位 是V2X领域存在的两大通信技术之一&#xff08;另一个为LTE-V2X&#xff09;。 所属技术路线 与这两大技术相对应&#xff0c;是V2X无线通信技术的两大技术路线&#xff1a; IEEE 802.11p 本是04年指定的一个通…

一文入门HTML+CSS+JS(样例后续更新)

一文入门HTMLCSSJS&#xff08;样例后续更新&#xff09;前言HTML&#xff0c;CSS和JS的关系HTMLhead元素titlelinkmetabody元素设置网页正文颜色与背景颜色添加网页背景图片设置网页链接文字颜色设置网页边框文字与段落标记普通文字的输入对文字字体的设置 font使用文字的修饰…