SpringBoot3 核心特性-学习笔记(一)快速入门

SpringBoot 整合MVC 进行 Web 开发

SpringBoot 整合 MyBatis 进行数据库的访问

学习SpringBoot3的前置知识:

Java17

Spring SpringMVC MyBatis

Maven IDEA

环境要求:

一、SpringBoot 简介

SpringBoot 可以帮助我们简单、快速地创建一个独立的、生产级别的 Spring 应用。

只需要编写少量配置就可以快速整合 Spring 平台 和第三方技术

1.1 SpringBoot 的特性:

  • 快速创建 独立 Spring 应用
  • 直接 嵌入 Servlet 容器【无需部署 War 包】。
    • Servlet容器:Tomcat、Jetty(Jetty 是一个开源的servlet容器) or Undertow(是一个采用 Java 开发的灵活的高性能 Web 服务器)
    • 直接打包成 jar 包,在 Java 环境下直接运行。
  • ⭐提供可选的 starter,简化应用整合
    • 场景启动器(starter)
    • 开发中常见的场景:web、json、邮件、oss(对象存储)、异步、定时任务、缓存...
    • SpringBoot 为每一种场景都准备了一个依赖。比如 web 场景的:web-starter
  • ⭐按需自动配置 Spring 以及第三方库
    • 如果这些场景我要使用(生效),这个场景的所有配置都会自动配置好。
    • 约定大于配置:每个场景都有很多默认的配置
    • 自定义:配置文件中修改几项就可以
  • 提供生产级特性:如 监控指标、健康检查(看应用是否存活:比如 k8s)、外部化配置等
  • 无代码生成,无 xml

1.2 总结:

简化开发、简化配置、简化整合、简化部署、简化监控、简化运维

二、快速体验

场景:浏览器发送 /hello 请求,返回 "Hello,SpringBoot 3!"

2.1 开发流程

根据官方文档来一步一步的操作。

网址:Getting Started

第一步:所有的SpringBoot项目都必须继承自SpringBoot父项目:spring-boot-starter-parent

第二步:导入web场景启动器

第三步:主程序

第四步:编写业务代码

第五步:测试

默认启动访问:localhost:8080

第六步:应用上线 —— 打包
引入打包插件

命令:mvn clean package  把项目打包成可执行的jar包

        java -jar demo.jar   启动项目

2.2 特性小结

1、简化整合

引入相关的场景启动器,导入相关场景,然后拥有此场景相关的功能

SpringBoot默认支持的场景有:Developing with Spring Boot

2、简化开发

无需编写任何配置,直接开发业务

3、简化配置 application.properties

  • 集中式管理配置,只需修改这个文件就行

  • 配置基本都有默认值

  • SpringBoot 能写的所有配置有:Common Application Properties 

4、简化部署

所有的SpringBoot 都可以打包成 可执行的 jar 包。

只需要在 Linux 的服务器上有 java 环境就行。

部署:java -jar -名字.jar

5、简化运维

  • 修改配置:在外部放一个 application.properties 文件
  • 监控
  • 健康检查

2.3 Spring Initializr 创建向导 —— 一键创建 SpringBoot 项目

1、使用Spring Initializr 创建SpringBoot 项目

2、导入相关场景启动器

3、一键帮我们创建好项目结构

4、SpringBoot 的默认规则

SpringBoot 只扫描主程序所在的包,及其子包

三、应用分析

SpringBoot底层的两个机制:依赖管理机制自动配置机制

3.1 依赖管理机制

思考:

1、为什么导入 starter-web 所有相关依赖都导入进来?
  • 开发什么场景,导入什么 场景启动器
  • maven 依赖传递原则。A ->(依赖)B -> C,A就拥有B和C
  • 导入 场景启动器。场景启动器 自动把这个场景的所有核心依赖全部导入进来。
2、为什么版本号都不用写
  • 每个 Spring Boot 项目都有一个父项目 spring-boot-starter-parent
  • parent 的父项目是 spring-boot-dependencies
  • 父项目是 版本仲裁中心,把所有常见的 jar 的依赖版本都声明好了
  • 比如:mysql-connector-j
3、自定义版本号
  • 利用 maven 的就近原则
4、第三方的 jar 包
  • SpringBoot 父项目没有管理的 jar 包需要自行声明好

  • <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.2.20</version>
    </dependency>
    

3.2 自动配置机制

1、初步理解

  • 自动配置的 Tomcat、SpringMVC 等【导入场景,容器中就会自动配置好这个场景的核心组件】
    • 以前:DispatcherServlet、ViewResolver、CharacterEncodingFilter...
    • 现在:自动配置好的这些组件
    • 验证:容器中有了什么组件,就具有什么功能。
  • 默认的包扫描规则
    • @SpringBootApplication 标注的类就是主程序类
    • SpringBoot 只会扫描主程序所在的包及其下面的子包,自动 component-scan 功能【component :组件】
    • 自定义扫描路径:
      • @SpringBootApplication(scanBasePackages = "com.liuwent")
      • @ComponentScan("com.liuwent") 直接指定扫描的路径
  • 配置默认值
    • 配置文件 的所有配置项是和某个 类的对象 值进行一 一绑定的
    • 绑定了配置文件中每一项值的类:配置属性类(属性类)
    • 比如:
  • 按需加载自动配置
    • 导入场景 spring-boot-starter-web
    • 场景启动器除了会导入相关功能依赖

总结:导入场景启动器、触发  spring-boot-autoconfigure 这个包的自动配置生效、容器中就会具有相关场景的功能。

2、完整流程

3.3 自动配置

3.4 Yaml 文件

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值