SpringBoot的学习要点

news2024/9/27 17:34:24

  • 黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)_哔哩哔哩_bilibili
  • 博客阅读:Microservices
  • 中文文档:Spring Boot 中文文档 
  • spring官网:https://start.spring.io/
  • thymeleaf官方文档阅读(英文版):https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.pdf

springboot是什么?

  • Spring Boot 是基于 Spring 框架的一种快速构建微服务应用的方式。它主要提供了自动配置、简化配置、运行时应用监控等功能。
  • 主要用来简化Spring应用的初始搭建以及开发过程
  • 优点:
    • 起步依赖(简化依赖配置)
      • parent, starter
      • 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,如果发生坐标错误,再指定Version
    • 自动配置(简化常用工程相关配置)
    • 辅助功能(内置服务器……)
      • tomcat(默认):apache出口,应用面广,负载了若干较重的组件
      • jetty:更轻量级,负载性能远不及tomcat
      • undertow:负载性能勉强胜于tomcat
    • springboot与微服务?

      • 微服务是一种软件架构风格,在进行项目开发时一个完整的应用由一组微服务组成,每个小型服务都运行在自己的进程内,多个不同的微服务之间使用HTTP进行通信。 

SpringBoot的基本内容

  • 1、SpringBoot的启动方式:引导类
    • 
      @SpringBootApplication
      public class DemoApplication {
      	public static void main(String[] args) {
      		SpringApplication.run(DemoApplication.class, args);
      	}
      
      }
    • SpringBoot工程运行后初始化Spring容器,扫描引导类所在的包加载bean
  • 2、SpringBoot提供的配置文件格式:(优先顺序:properties>yml>yaml)
    • application.properties(等号)
    • application.yml(主流格式):
      • yml书写格式:数据前面要加空格与冒号隔开
      • yml数据读取:使用@Value读取单个数据,属性名引用方式:${一级属性名,二级属性名……}
      • yml文件内部引用属性:使用${xxx(属性名)},一变全变
        • 属性值中的转义字符需要用双引号包起
          • lesson: "Spring\tboot\nlesson"
      • 配置信息的简便用法:(把配置文件里需要的那部分信息封装成一个对象使用)
        • (1)使用@ConfigurationProperties注解绑定配置信息到封装类中
        • (2)封装类需要定义为Spring管理的bean,否则无法进行属性注入
    • application.yaml(冒号)

SpringBoot整合第三方技术

  • 掌握整合思想

  • 框架之所以好用,就是因为它有很多默认配置,省了功夫

  • 整合JUnit

    • 1、导入测试对应的starter
    • 2、测试类使用@SpringBootTest修饰
    • 3、使用自动装配的形式添加要测试的对象
    • 出现的小问题:
      • 引导类和测试类要放在同一个包下
        • 或者在测试类的注解上添加引导类的信息
          • @SpringBootTest(classes = Springboot04JunitApplication.class)
            
  • 整合MyBatis

    • 1、创建新模块,选择Spring初始化,并配置模块相关基础信息
    • 2、选择当前模块需要使用的技术集(SQL下的MyBatis Framework、MySQL Driver)
    • 3、数据库连接的相关信息写入配置文件,application.yml文件
    • 4、定义数据层接口与映射配置,xxxDao和@Mapper
      • 数据库SQL映射需要添加@Mapper才能被容器识别到
    • 5、测试类中注入dao接口,测试功能,@Autowired
    • 出现的小问题:
      • 1、pom.xml文件里报错“Cannot resolve com.mysql:mysql-connector-j:unknown”
        • 解决:依赖里加上版本号后刷新 
          • ​​
      • 2、http://t.csdn.cn/xCtuU
  • 整合MyBatis-Plus

    • MyBatis-Plus和MyBatis区别
      • 1、导入坐标不同
      • 2、数据层实现简化        
    • 步骤:
      • 1、手动添加SpringBoot整合MyBatis-Plus的坐标,可以通过mvnrepository获取 
        <dependency>
        		<groupId>com.baomidou</groupId>
        		<artifactId>mybatis-plus-boot-starter</artifactId>
        		<version>3.3.1</version>
        </dependency>
      • 2、定义数据层接口与映射配置,继承BaseMapper
      • 3、其他同SpringBoot整合MyBatis。。。
  • 整合Druid

    • 1、导入Druid对应的starter
    • 2、根据Druid提供的配置方式进行配置
    • 3、。。。
  • 基于SpringBoot的SSMP整合案例

    • 1、实体类开发:使用Lombok快速制作实体类
      • lombok,一个java类库,提供了一组注解,用于简化POJO实体类开发
      • <dependency>
        		<groupId>org.projectlombok</groupId>
        		<artifactId>lombok</artifactId>
        </dependency>
    • 2、Dao开发:整合MyBatisPlus,制作数据层测试类
      • 导入MyBatisPlus和Druid对应的starter
        <dependency>
        		<groupId>com.baomidou</groupId>
        		<artifactId>mybatis-plus-boot-starter</artifactId>
        		<version>3.4.3</version>
        </dependency>
        
        <dependency>
        		<groupId>com.alibaba</groupId>
        		<artifactId>druid-spring-boot-starter</artifactId>
        		<version>1.2.6</version>
        </dependency>
      • 配置数据源与MyBatisPlus对应的基础配置,application.yml配置文件

      • 继承BaseMapper并指定泛型

      • 制作测试类测试结果 

      • 为方便调试可以开启MyBatisPlus的日志

        • log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
      • 分页功能

        • @Test
          void testGetPage(){
             IPage page=new Page(1,5);
             bookDao.selectPage(page,null);
          }
        • IPage对象中封装了分页操作中的所有数据(数据、当前页码值、每页数据总量、最大页码值 、数据总量)

        • 分页操作是在MyBatisPlus的常规操作基础上增强得到,内部是动态的拼写SQL语句,因此需要增强对应的功能,使用MyBatisPlus拦截器实现

        • 使用LambdaQueryWrapper对象,把所有查询操作封装成方法调用

    • 3、Service开发:基于MyBatisPlus进行增量开发,制作业务层测试类
      • 使用MyBatisPlus提供有业务层通用接口(IService<T>)与业务层通用实现类(ServiceImpl<M,T>)
      • 在通用类基础上做功能重载或功能追加
      • 注意重载时不要覆盖原始操作,避免原始提供的功能丢失
    • 4、Controller开发:基于Restful开发,使用PostMan测试接口功能
    • 5、Controller开发:前后端开发协议制作
      • 设计表现层返回结果的模型类,用于后端与前端进行数据格式统一,也称为前后端数据协议
        @Data
        public class R{
            private Boolean flag;
            private Object data;
        }

    • 6、页面开发:基于VUE+ElementUI制作,前后端联调,页面数据处理,页面消息处理
      • 列表、新增、修改、删除、分页、查询
      • 前后端分离结构设计中页面归属前端服务器
      • 单体工程中页面放置在resources目录下的static目录中(建议执行clean)
    • 7、项目异常处理
    • 8、按条件查询:页面功能调整、Controller修正功能、Service修正功能
    • 项目结构:
      • 1、pom.xml:配置起步依赖
      • 2、application.yml:设置数据源、端口、框架技术相关配置
      • 3、dao:继承BaseMapper, 设置@Mapper
      • 4、dao测试类
      • 5、service:调用数据层接口或MyBatis-Plus提供的接口快速开发
      • 6、service测试类
      • 7、controller:基于Restful开发,使用Postman测试跑通功能
      • 8、页面:放置在resources目录下的static目录中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1026326.html

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

相关文章

监控的分类

监控可以分成 4 个类别&#xff0c;具体如下&#xff1a; 业务监控 业务监控指标是管理层所关注的&#xff0c;一般与企业营收挂钩&#xff0c;或者跟客户主流程相关。这类指标类似 BI&#xff08;Business Intelligence System&#xff0c;即数据分析系统&#xff09; 数据…

【Html】用CSS定义咖啡 - 咖啡配料展示

显示效果 代码 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>CodePen - For The Love Of Coffee</title><link rel"stylesheet" href"./style.css">&l…

使用ZoeDepth生成深度估计图

目前单目深度估计分为两个派系&#xff0c;metric depth estimation(度量深度估计&#xff0c;也称绝对深度估计)和relative depth estimation(相对深度估计)。 ZoeDepth是 第一个结合相对和绝对深度的多模态单目深度估计网络。本博文仅记录使用ZoeDepth生成深度估计图的过程&a…

Unity丨调色板丨颜色调色

文章目录 功能介绍功能展示技术细节小结 功能介绍 本文制作一个简单的调色板。拖动滑动条完成颜色变更。 功能展示 技术细节 需要把相应的三个滑动条和image拖拽赋值。 using UnityEngine; using UnityEngine.UI;public class ColorPicker : MonoBehaviour {public Slider …

高云FPGA系列教程(8):ARM串口数据接收(中断和轮询方式)

文章目录 [toc]1. GW1NSR-4C串口外设简介2. FPGA配置3. 常用函数4. 轮询方式接收数据5. 中断方式接收数据 本文是高云FPGA系列教程的第8篇文章。 本篇文章介绍片上ARM Cortex-M3硬核处理器串口外设的使用&#xff0c;演示轮询方式和中断方式接收串口数据&#xff0c;并进行回环…

【Java 基础篇】Executors工厂类详解

在多线程编程中&#xff0c;线程池是一项重要的工具&#xff0c;它可以有效地管理和控制线程的生命周期&#xff0c;提高程序的性能和可维护性。Java提供了java.util.concurrent包来支持线程池的创建和管理&#xff0c;而Executors工厂类是其中的一部分&#xff0c;它提供了一些…

MySQL数据库笔记

文章目录 一、初识MySQL1.1、什么是数据库1.2、数据库分类1.3、MySQL简介 二、操作数据库2.1、操作数据库&#xff08;了解&#xff09;2.2、数据库的列类型2.3、数据库的字段属性&#xff08;重点&#xff09;2.4、创建数据库表&#xff08;重点&#xff09;2.5、数据表的类型…

【PHPCUSTOM】打包PHP程序为EXE

目录 一、下载PHPCUSTOM 二、PHP网站打包 1、打开PHPCUSTOM 2、配置参数 3、生成exe文件 网上很多PHP程序打包成EXE的文章&#xff0c;但是都不能用&#xff0c;最后找到了PHPCUSTOM&#xff0c;使用PHPCUSTOM可以把PHP程序打包成exe。我们都知道PHP是服务端语言&#xff…

CCG超级标记

1. 定义 组合范畴语法&#xff08;Combinatory Categorial Grammar&#xff0c;CCG&#xff09;是一种用于自然语言语法分析的语言学理论和计算模型。它是一种形式文法&#xff0c;旨在描述句子的结构和语法规则&#xff08;通过简练的描述形式表现出句子中各成分的句法语义关…

用VS Code运行C语言(安装VS Code,mingw的下载和安装)

下载并安装VS code。 安装扩展包&#xff1a; 此时&#xff0c;写完代码右键之后并没有运行代码的选项&#xff0c;如图&#xff1a; 接下来安装编译器mingw。 下载链接&#xff1a; https://sourceforge.net/projects/mingw-w64/ 得到压缩包&#xff1a; 解压&#xff1a; …

车载通信架构 —— SOME/IP 协议概述

车载通信架构 —— SOME/IP 协议概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 对学习而言,学习之后的思考、思考之后的行动、行动之后的改变更重要,如果不盯住内层的改变量,那么在表层投…

浅谈DBT的一些不足之处

DBT的好处是显而易见的&#xff0c;它支持连接多达41种数据库。而且不需要你写DDL语句&#xff0c;只要写select语句&#xff0c;DBT会自动帮你推断schema结构&#xff0c;将数据写入到数据库中&#xff1a; 但是使用了一段时间之后&#xff0c;发现DBT也存在着如下这些不足之处…

YOLOv5、YOLOv8改进:HorNet完全替换backone

1.简介 论文地址&#xff1a;https://arxiv.org/abs/2207.14284 代码地址&#xff1a;https://github.com/raoyongming/HorNet 视觉Transformer的最新进展表明&#xff0c;在基于点积自注意力的新空间建模机制驱动的各种任务中取得了巨大成功。在本文中&#xff0c;作者证明了…

pcl--第七节 点云配准

点云配准原理概述 点云配准需求场景 ​ 随着计算机辅助设计技术的发展&#xff0c;通过实物模型产生数字模型的逆向工程技术获得了越来越广泛的应用&#xff0c;与此同时&#xff0c;硬件设备的日趋完善也为数字模型操作提供了足够的技术支持。 ​ 由于三维扫描仪设备受到测…

win系统环境搭建(九)——Windows安装chatGPT

windows环境搭建专栏&#x1f517;点击跳转 win系统环境搭建&#xff08;九&#xff09;——Windows安装chatGPT 本系列windows环境搭建开始讲解如何给win系统搭建环境&#xff0c;本人所用系统是腾讯云服务器的Windows Server 2022&#xff0c;你可以理解成就是你用的windows…

FFmpeg5.1.3编译动态库详细教程(基于Linux虚拟机)

FFmpeg编译详细教程 FFmpeg编译详细教程 本文原创&#xff1a;猿视野 ( 一家分享技术架构思路,扩展程序员视野的网站,遇到技术问题&#xff0c;可以加联系方式相互交流) 转载请注明出处和相关链接&#xff0c;否则追究其法律责任&#xff01; 原文地址&#xff1a;https://dev…

MyBatis之增删查改功能

文章目录 一、创建各种类二、MyBatis的各种功能 1、查询<select>2、增加<insert>3、修改<update>4、删除<delete>三、总结 前言 在MyBatis项目中编写代码实现对MySql数据库的增删查改 一、创建各种类 1、在Java包的mapper文件下创建一个接口 我创建…

“毛细血管”的进化:华为分销业务如何让伙伴也有“高能级”

作者 | 曾响铃 文 | 响铃说 数字化蓬勃发展的大时代&#xff0c;除了那些中、大型企业&#xff0c;数量更为庞大的小微企业同样有借助数字化产品、服务来提升企业经营的需求&#xff0c;由此也带来了广袤的数字化分销市场。 这里处在聚光灯之外&#xff0c;很少被数字化时代…

PyCharm安装教程,新手详细

首先进入官网&#xff1a;https://www.jetbrains.com/pycharm/download/?sectionwindows#sectionwindows 然后选择版本&#xff0c;我下载的是社区版&#xff0c;一般学习是够了 然后点击Download进行下载。 双击exe运行 然后选择安装路径&#xff0c;建议放在D盘 然后这…

找不到msvcp140.dll的解决方法,以及msvcp140.dll丢失的原因

在计算机使用过程中&#xff0c;我们可能会遇到无法启动程序的问题&#xff0c;提示找不到 msvcp140.dll。这使得许多用户感到困扰&#xff0c;因为 msvcp140.dll 是 Microsoft Visual C Redistributable 的一个组件&#xff0c;它包含了 C 运行时库。这个库对于许多应用程序和…