SpringBoot的学习要点

2023-09-20 21:25:39

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目录中
更多推荐

Tomcat多实例+Nginx动静分离、负载均衡

这里写目录标题Tomcat多实例+动静分离、负载均衡一、Tomcat多实例部署1、安装JDK2、安装启动tomcat二、Nginx+Tomcat负载均衡、动静分离1、Nginx负载均衡实现原理1.1原理1.2Nginx配置反向代理的主要参数2、Nginx动静分离实现原理2.1原理2.2Nginx静态处理优势3、动静分离

计网第五章(运输层)(四)(TCP的流量控制)

一、基本概念流量控制就是指让发送方的发送速率不要太快,使得接收方来得及接收。可以使用滑动窗口机制在TCP连接上实现对发送方的流量控制。注意:之前在讨论可靠传输时,讨论过选择重传协议和回退N帧协议都是基于滑动窗口的机制上进行实现的。二、具体实现接收方通过向发送方发送带有自己接收窗口值的报文段来控制发送方的发送窗口。注意:

详解TCP/IP协议第五篇:详细介绍网络传输中的地址

文章目录一:通信中地址简介1:地址的唯一性(一):唯一性狭义概念(二):唯一性广义概念2:地址的层次性(一):地址分层的意义(二):MAC地址优劣(三):IP地址的便利一:通信中地址简介通信传输中,发送端和接收端可以被视为通信主体。它们都能由一个所谓“地址”的信息加以标识出来。当人们使用电话时,电话号码就相当于“地址”

中手游上半年扭亏为盈,仙剑IP魅力不减?

你也曾有过江湖梦吗?你也曾因“为国为民、为友为邻”的侠者心无处可安而苦恼吗?那么,“仙剑”系列游戏或许可以成为你的灵魂寄托之所。而能让侠者的江湖梦具象化的幕后厂商,便是中手游。两年前,中手游斥巨资买下了仙剑IP的大陆地区权益,两年内,中手游不断推出仙剑系列游戏新作。其中,公司于今年6月上线的《新仙剑奇侠传之挥剑问情》,

TCP特性的滑动窗口,流量控制

目录一、TCP特性滑动窗口二、TCP特性流量控制(作为滑动窗口的补充)一、TCP特性滑动窗口提高传输效率(更准确的说,让TCP在可靠传输的前提下,效率不太拉跨)💛当然你要是想让TCP媲美UDP,也是痴人说梦,只能说减小差距。一次性发一组数据,发数据的过程中,不需要等待ACK,就直接往前发,此时相当于“一份等待时间”等

TCP socket && UDP && TCP协议 && IP协议 && 以太网等

第1题(编程题)题目名称:编写TCP版本的echoserver和echoclient题目内容:编写TCP版本的echoserver和echoclient第2题(编程题)题目名称:编写TCP版本的字典客户端和字典服务器题目内容:编写TCP版本的字典客户端和字典服务器第3题(编程题)题目名称:编写TCP版本的多线程服务器题

02_Bootstrap基础组件02

4排版使用Bootstrap的排版特性,您可以创建标题、段落、列表及其他内联元素,实际上它是把大部分在HTML的基本标签加了样式。所以这部分相对比较简单。4.1标题h1-h6重新定义样式,HTML中的所有标题标签,<h1>到<h6>均可使用。增加了.h1到.h6类,为的是给内联(inline)属性的文本赋予标题的样式。

远程连接PostgreSQL:配置指南与安全建议

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🐅🐾猫头虎建议程序员必备技术栈一览表📖:🛠️全栈技术FullStack:📚MERN/MEAN/MEVNStack|🌐Jamstack|🌍GraphQL|🔁RESTfulAPI|⚡WebSockets|🔄CI/CD|🌐Git&Versio

Linux安全加固:保护你的服务器

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

Cobra眼睛蛇-强大的Golang CLI框架,快速上手的脚手架搭建项目工具,详细安装和使用

Cobra眼睛蛇-强大的GolangCLI框架,快速上手的脚手架搭建项目工具,详细安装和使用。阅读过k8s源码的同学,应该都知道k8sScheduler、kubeadm、kubelet等核心组件的命令行交互全都是通过spf13写的Cobra库来实现。本文就来介绍下Cobra的相关概念及具体用法。关于Cobra是一个用于

MySQL常用配置详解

目录一、MySQL查看配置信息二、MySQL查看服务器当前运行状态的信息三、MySQL常用配置详解1、mysql(使用mysql命令登录数据库时的默认的设置)2、client(客户端默认设置内容)3、mysqld(服务端端配置)四、配置修改演示1、修改my.cnf配置文件(window系统修改my.ini配置文件)2、

热文推荐