当前位置: 首页 > news >正文

SoringBoot特点

SoringBoot特点

  • 一、依赖管理
    • 1.父项目做依赖管理
    • 2.开发导入starter场景启动器
    • 3.无需关注版本号,自动版本仲裁
    • 4.可以修改默认版本号
  • 二、自动配置
    • 1.自动配好Tomcat
    • 2.自动配好SpringMVC
    • 3.自动配好web常见功能,如字符编码问题
    • 4.默认的包结构
    • 5.各种配置拥有默认值
    • 6.按需加载所有的自动配置项

一、依赖管理

1.父项目做依赖管理

依赖管理
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.3</version>
    </parent>
他的父项目
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.7.3</version>
  </parent>
几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制

2.开发导入starter场景启动器

1、spring-boot-starter-*:*就是某种场景

2、只要引入starter,这个场景的所有常规需要的依赖我们都会自动注入

3、springboot所有支持的场景
https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters

4、*-spring-boot-starter:是第三方提供的简化开发的场景启动器

5、所有场景启动器最底层的依赖
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter</artifactId>
  <version>2.7.3.RELEASE</version>
  <scope>compile</scope>
</dependency>

3.无需关注版本号,自动版本仲裁

1、引入依赖默认都可以不写版本号

2、引入非版本仲裁jar,需要写版本号

4.可以修改默认版本号

1、查看spring-boot-dependencies里面规定当前依赖的版本

2、也可以在当前项目里重写配置修改版本号,如:
    <properties>
        <mysql.version>8.0.30</mysql.version>
    </properties>

二、自动配置

1.自动配好Tomcat

(1)引入Tomcat依赖
(2)配置Tomcat

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>2.7.3</version>
      <scope>compile</scope>
    </dependency>

2.自动配好SpringMVC

(1)引入SpringMVC全套组件
(2)自动配好SpringMVC常用组件

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.22</version>
      <scope>compile</scope>
    </dependency>

3.自动配好web常见功能,如字符编码问题

帮助我们配置好了所有web开发的常见场景

4.默认的包结构

(1)主程序所在包及其下面所有子包里面的组件都会被默认扫描进来

(2)这样的话就这种结构下就不需要以前的包扫描配置

(3)想要改变扫描路径的话,可以使用 @SpringBootApplication(scanBasePackages = “com.work”),或者使用之前我们在Spring里学的@ComponentScan来指定扫描路径

@SpringBootApplication
等同于
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.work.boot")

5.各种配置拥有默认值

(1)默认配置最终都会映射到某个类上

(2)配置文件的值最终会绑定某个类,这个类会在容器中创建对象

6.按需加载所有的自动配置项

(1)根据自己的需要,加入各种starter

(2)自己引入了哪些场景,这些场景的自动配置才会开启

(3)SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里面

相关文章:

  • 浅析Java设计模式【3.4】——策略
  • time,datetime模块时间序列讲解
  • Hive的JDBC操作
  • Axure8.0教程:自动带出邮箱
  • VUE+webrtc-streamer实现实时视频播放(监控设备-rtsp)
  • Java进阶常用的辅助类(CountDownLatch 减法计数器、CyclicBarrier 加法计数器、Semaphore 信号量)
  • HWI的安装及使用
  • 【数据库】MySQL(索引、数据结构、性能、锁、事务等)面试题
  • Cython代码加密, 使用 Cython 将 Python 代码编译为二进制(将整个Django项目编译成功并部署)
  • C# 程序开机自动启动
  • html2canvs的一些问题
  • 金仓数据库 KingbaseES 插件参考手册 S(3)
  • Flutter聊天布局之图片视频上传、显示、保存到相册
  • Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution
  • 基于SSM框架实现学生管理系统
  • [NodeJS] 关于Buffer
  • [译]前端离线指南(上)
  • 2019.2.20 c++ 知识梳理
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Lsb图片隐写
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Mithril.js 入门介绍
  • rc-form之最单纯情况
  • Sass 快速入门教程
  • scala基础语法(二)
  • unity如何实现一个固定宽度的orthagraphic相机
  • Vue2.x学习三:事件处理生命周期钩子
  • 初识MongoDB分片
  • 后端_MYSQL
  • 回顾2016
  • 力扣(LeetCode)357
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 为什么要用IPython/Jupyter?
  • 小程序测试方案初探
  • 第二十章:异步和文件I/O.(二十三)
  • 扩展资源服务器解决oauth2 性能瓶颈
  • 说说我为什么看好Spring Cloud Alibaba
  • ​业务双活的数据切换思路设计(下)
  • !!java web学习笔记(一到五)
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (C#)一个最简单的链表类
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (WSI分类)WSI分类文献小综述 2024
  • (zhuan) 一些RL的文献(及笔记)
  • (层次遍历)104. 二叉树的最大深度
  • (二)正点原子I.MX6ULL u-boot移植
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (三) diretfbrc详解
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (译) 函数式 JS #1:简介
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)