• SpringBoot的学习


    代码书写:耦合度偏高

    解决方法:使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象——IcC控制反转

    IoC(Inversion of Control)控制反转

    使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。

    Spring技术对IoC思想进行了实现——Spring提供了一个容器,称为IoC容器,用来充当IoC思想中的“外部”。

    IoC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IoC容器中统称为Bean。

    Spring目标是充分解耦

    • 使用Ioc容器管理bean(IoC)
    • 在IoC容器内将有依赖关系的bean进行关系绑定(DI)

    SpringBoot是提供的全新框架,其目的是用来简化Spring应用的初识搭建以及开发过程

    Spring程序缺点:

    • 依赖设置繁琐
    • 配置繁琐

    SpringBoot程序优点

    • 起步依赖(简化依赖配置)
    • 自动配置(简化常用工程相关配置)
    • 辅助功能(内置服务器)

    SpringBoot

    parent

    • 开发SpringBoot程序要继承spring-boot-starter-parent(定义了若干个依赖管理)
    • 继承parent模块可以避免多个依赖使用相同技术时,出现依赖版本冲突
    • 继承parent的形式也可以采用引入依赖的形式实现效果

    starter

    • SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的

    启动方式

    • @SpringBootApplication
      public class SpringbootDemoApplication {
      
          public static void main(String[] args) {
              SpringApplication.run(SpringbootDemoApplication.class, args);
          }
      
      }
    • SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目
    • SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

    REST风格

    简介

    REST,表现形式状态转换

    • 传统风格资源描述形式
      • http://localhost/user/getById?id=1
      • http://localhost/user/saveUser
    • REST风格描述形式
      • http://localhost/user/1
      • http://localhost/user
    优点
    • 隐藏资源的访问行为,无法通过地址的值对资源是何种操作
    • 书写简化
    内容

    • REST是约定方式,约定不是规范,可以打破,所以是REST风格
    • 模块的名称通常使用复数,表示此类资源,而非单个资源
    • 根据REST风格对资源进行访问称为RESTful

     @RequestMapping
    • 类型:方法注解
    • 位置:SpringMVC控制器方法定义上方
    • 作用:设置当前控制器方法请求访问路径
    • 属性
      • value(默认):请求访问路径
      • method:http请求动作,标准动作(GET/POST/PUT/DELETE)
    @PathVariable
    • 类型:形参注释
    • 位置:SpringMVC控制器方法形参定义前面
    • 作用:绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应
    • @RequestParam用于接收url地址传参或表单传参,@RequestBody用于接收json数据,@PathVariable用于接收路径参数,使用{参数名称}描述路径参数
    • 应用:发送请求参数超过一小时,以json格式为主,@RequestBody应用较广,如果发送非json格式数据,选用@RequestParam接收请求参数,采用RESTful进行开发,当参数较少时,可以采用@PathVariable接收请求路径变量(通常是一个)
    REST是默认遵守的规范

    看Url就知道要什么
    看http method就知道干什么
    看http status code就知道结果如何

    基础配置

    可以查询官网:https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#appendix.application-properties

    服务端端口配置

    server.port=80
    

    关闭运行日志图标,修改banner

    spring.main.banner-mode=off
    #有些版本不适用
    spring.banner.image.location=QQ截图20230927143656.png

    设置日志相关

    logging.level.root=info
    logging.level.root=error
    logging.level.root=debug
    springboot提供了多种属性配置方式
    • application.properties
      • server.port=80
    • application.yml
      • server:
          port:81
    • application.yaml
      • server:
          port:82

    优先级:properties>yml>yaml

    不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留

    yaml

    yaml是一种数据序列号格式

    优点
    • 容易阅读
    • 容易与脚本语言交互
    • 以数据为可信,重数据轻格式
    YAML文件扩展名
    • .yml(主流)
    • .yaml
    yaml语法规则
    • 大小写敏感
    • 属性层级关系使用多行描述,每行结尾使用冒号结束
    • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
    • 属性值前面添加空格(属性名与属性值之前使用冒号+空格作为分隔)
    • #表示注释
    • 核心规则:数据前面要加空格与冒号隔开
    • 数组表示方式:在属性书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号和数据间空格分隔

    • 在配置文件中可以使用${属性名}方式引用属性值
    • 如果属性中出现特殊字符,可以使用双引号包裹起来

    整合第三方技术

    整合JUnit

    • 名称:@SpringBootTest
    • 类型:测试类注解
    • 位置:测试类定义上方
    • 作用:设置JUnit加兹安的SpringBoot启动类
    • (项目结构)                             一个简单的BookDao接口:                继承了BookDao接口的BookDaoImpl接口在springboot04JunitApplicationTests.java测试类中:

    测试类换了地方,此时要再测试类中加入引导类,否则不能使用

    整合MyBatis

    • 创建新模块,选择Spring初始化,并配置模块相关基础信息
    • 选择当前模块需要使用的技术集(Mybatis,MySQL)
    • 设置数据源参数
    • 定义数据层接口与映射配置
    • 测试类中注入dao接口,测试功能

    注意:MySQL8.X强制要求设置时区(修改url,添加serverTimezone设定)

    驱动类过时,更换为com.mysql.cj.jdbc.Driver

    整合Mybatis-plus

    Mybatis和Mybatis-plus的区别:导入坐标不同,数据层实现简化

    1. 手工添加MyBatis-Plus对应的starter
    2. 数据层接口使用BaseMapper简化开发
    3. 需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标

    整合Druid

    1. 整合Druid需要导入Druid对应的starter
    2. 根据Druid提供的配置方式进行配置
    3. 整合第三方技术通用方式
      1. 导入对应的starter
      2. 根据提供的配置格式,配置非默认值对应的配置项

    项目

    • pom.xml
      • 配置起步依赖
    • application.yml
      • 设置数据源,端口,框架相关配置等
    • dao
      • 继承BaseMapper,设置@Mapper
    • dao测试类
    • service
      • 调用数据层接口或MyBatis-Plus提供的接口快速开发
    • service测试类
    • controller
      • 基于Restful开发,使用Postman测试
    • 页面
      • 放置在resources目录下的static目录中

  • 相关阅读:
    E - Blackout 2(离线 + 思维倒推 + 并查集)
    缓存
    刷题记录:洛谷P4147玉蟾宫
    Minecraft 1.20.x Forge模组开发 06.建筑生成
    MySQL 事件调度
    【SimpleFunction系列二】渐进式理解Redis分布式锁
    localStorage封装代码
    上位机与plc写心跳定时扫描连接状态
    GBase 8c 核心技术简介(下)
    SSM学习52:SSM三大技术整合案例
  • 原文地址:https://blog.csdn.net/m0_73172034/article/details/132767256