黑马程序员SpringBoot2-开发实用篇

视频连接:开发实用篇-67-手工启动热部署_哔哩哔哩_bilibili

热部署

手动启动热部署

热部署仅包含restart的过程。

自动启动热部署

按Ctrl+Alt+Shift+/打开下列界面。

禁用热部署

配置高级

@ConfigurationProperties

宽松绑定/松散绑定

常用计量单位绑定

数据校验

设置具体规则。

测试

加载测试专用属性

加载测试专用配置

使得某个配置只能在当前测试类中使用,从而减少配置。

Web环境模拟测试

查看调用过程是否成功。

查看执行结果是否符合预期(感觉有点麻烦,如果返回结果不是字符串呢,我还得自己写一个一模一样的返回结果?)。奥,应该可以只判断返回结果中的某个属性是不是符合预期。

请求头匹配,感觉意义不大。

数据层测试回滚

为测试类加上@Transactional注解,防止运行程序的时候测试类对数据库进行操作。

测试用例数据设定

数据层解决方案

SQL层

这一章主要讲的是SpringBoot自己内置的数据源、持久化技术、内置数据库。

数据源配置

如果没有指定数据源类型,springboot会采取默认数据源对象hikari,具体配置有区别需要自己查。

内置持久化解决方案——jdbcTemplate

比较原始的jdbc技术。比较繁琐。JdbcTemplateSpringJDBC的封装,应用于dao层,对数据库进行CRUD的操作。

内嵌数据库(H2)

导包

初次启动需要声明数据源。

配置完后启动,浏览器url输入localhost/h2进入控制台。

NoSQL

Redis

SpringBoot整合

使用RedisTemplate类操作redis数据库。

直接使用RedisTemplate使用的是对象映射,在客户端中可能查询不到对象,可以修改为使用StringTemplate或者指定泛型为String。

jedis

edis是一个用Java编写的Redis客户端,包含易于使用Redis的API。

springboot默认的客户端是Lettuce,性能较高,但为了与之前的软件兼容,可以改为jedis。

mongo

又能操作结构化数据,又能高响应速度。

应用场景

下载安装

下面的../data/db文件夹需要自己创建。

基本操作

Springboot整合MongoDB

ES(Elasticsearch)

适用于根据关键字查询信息,这里的倒排索引表示根据关键字查询id,创建文档表示创建对应数据(关键字-id-数据)的数据结构,方便快速展示,使用文档表示输入关键字查询到对应信息。

下载与安装

基础操作

这里的索引大概的意思是表示查询的方式,通过制定mappings进行设定。

下载分词器,放在plugin目录下。

文档就是数据。

整合SpringBoot的操作

下面引入json需要导入fastjson。

整合第三方技术

缓存

缓存使用

手机验证码案例

后面没有ppt...

缓存供应商变更:Ehache

xml文件放在resource文件夹下。

数据淘汰的方法

LRU跟时间相关,LFU跟次数相关。

缓存供应商变更:Redis

下面的是进一步配置。

缓存供应商变更:memcached

缓存供应商变更:jetcache

在方法上加缓存。

@CacheRefresh表示过多长时间刷新一下缓存,使得与数据库同步,因为可能有另一个系统更新数据库导致缓存与数据库不一致。

缓存供应商变更:j2cache

j2cache提供了框架,使得不同的缓存技术可以进行整合。其中j2cache-core包中包含了对redis的整合。以下为实现redis和ehcache的整合。

下面redis的provider_class在j2cache-core包中能找到对应的provider类,要使用那个类的全类名。broadcast也是j2cache-core包下的实现类。

任务

整合Quartz

这个不需要指定成bean。

Spring Task

邮件

整合JavaMail

下面的password要填授权码。

消息

将任务分发给子业务系统,分散压力。

三种规范

JMS

AMQP

统一了数据格式,解决了跨平台的问题。

Kafka

ActiveMq

默认目的地。

自定义目的地。

监听器可以直接执行队列中的数据。

RabbitMq

定义了交换机,交换机将队列和键值绑定,收发消息时不直接与队列交换信息,而是根据键值和交换机找相应队列。

监听器监听的注解需要写队列名称。

仅修改了红色部分,字符串匹配的灵活性为多种多样的消息匹配提供了便捷。

RocketMq

为了方便服务器扩容,添加了nameServer。

要想运行成功,需要把jdk版本换到9以下,还要把path中jdk的环境变量中的路径改成没有空格的。

Kafka

监控

监控的意义

左边监控平台主动拉取右边监控信息,右边监控设置是否可以被监控以及展示信息的种类。

可视化监控平台

监控原理

端点名称

暴露出来的端点可以使用web访问也可以使用jmx jconsole方式访问。

自定义监控指标

监控平台的info没有信息,使用如下办法自定义信息。

红线部分要加enabledefault。

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

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

相关文章

Android音视频编码(2)

Android本身提供了音视频编解码工具,很多时候是不需要第三方工具的,比如ffmpeg, OpenCV等,在android中引入第三库比较复杂,在Android音视频编码中介绍了如何引入第三方库libpng来进行进行图片处理,同时引入这些第三方库…

JVM内存区域详解,一文弄懂JVM内存【内存分布、回收算法、垃圾回收器】

视频讲解地址 学习文档 一、内存区域 区域描述线程私有如何溢出程序计数器为了线程切换后能恢复到正确的执行位置,每个线程都要有一个独立的程序计数器。✅唯一一个不会内存溢出的地方虚拟机栈1. 每个方法执行的时候,Java虚拟机都会同步创建一个栈帧用于…

获取当前设备的IP

背景: 在本地使用自带webUI的项目时,需要制定webUI的访问地址。 一般本地访问使用:127.0.0.1,配置为可以从其他设备访问时,需要指定当前设备的IP,或者指定为0.0.0.0。 例如:使用locust的时候&a…

【Python学习】Python学习18- 方法OS 文件/目录方法

目录 【Python学习】Python学习17- File方法 前言os.access()语法: os.chdir(path)语法 os.chflags(path, flags)语法 os.chmod(path, mode)os.chown(path, uid, gid)os.chroot(path)os.close(fd)os.unlink(path)os.popen(command[, mode[, bufsize]])os.read(fd, …

Python--循环语句

在 Python 中,循环语句用于重复执行一段代码多次。Python 主要提供了两种类型的循环:for 循环和 while 循环。 1. for 循环 for 循环用于遍历可迭代对象(如列表、元组、字典、字符串等)中的每个元素,并对每个元素执行…

精通业务:资深程序员的核心优势

在IT行业,我们常常听到关于技术实力、项目经验、团队协作等方面的讨论,但有一个重要因素常常被忽视,那就是对业务的了解。 对于资深程序员来说,懂业务和不懂业务之间的区别,犹如一道深邃的鸿沟,决定着他们…

MCS-51---串行通信的特点

目录 一.同步通信和异步通信 1.异步通信 2.同步通信 二.串行通信的方式 1.单工 2.半双工 3.全双工 三.串行通信的速率 四.MCS-51单片机结构 五.串行口的控制 1.串行口控制寄存器(SCON) 2.电源控制寄存器(PCON) 六.波特率的设计 七.串行口的工作方式 1.方式0 2.…

DM数据库安装注意事项

数据库安装注意事项 一、安装前 一些参数需要在数据库创建实例前找用户确认。 参数名参数掩码参数值备注数据页大小PAGE_SIZE32数据文件使用的页大小(缺省使用8K,建议默认:32),可以为 4K、8K、16K 或 32K 之一,选择的页大小越大…

k8s存储卷之动态

动态pv需要两个组件 1、卷插件,k8s本身支持的动态pv创建不包含NFS,需要声明和安装一个外部插件 Provisioner 存储分配器,动态创建pv,然后根据pvc的请求自动绑定和使用 2、StorageClass,用来定义pv的属性&#xff0c…

选择和训练模型(Machine Learning 研习之十一)

当您看到本文标题时,不禁感叹,总算是到了训练模型这一节了。 是啊,在之前的文章中,我们对数据进行了探索,以及对一个训练集和一个测试集进行了采样,也编写了一个预处理管道来自动清理,准备您的数…

大数据赋能电竞出海企业发展

近几年电竞行业发展迅速,我国单2022年新增近4万家电竞相关企业,竞争十分激烈。中国电竞市场规模在全球占比19%左右,海外有巨大的增量市场,特别是东南亚、中南亚和拉丁美洲是电竞市场增长最快的地区,在2020至2025年期间…

C#,求最长回文字符串的马拉车(Manacher)算法的源代码

一、回文字符串(Palindromic String) 回文字符串(Palindromic String)是指前、后向读起来完全相同的字符串。 回文字符串除了答题似乎没有什么用处 :P 二、求解思路 求解字符串的回文子串的基本思路: 1、遍历每个位…

HTML---CSS-引入样式表和选择器

CSS : Cascading Style Sheet 层叠式样式表 HTML 用于控制网页的结构&#xff0c;CSS则用于控制网页的外观&#xff0c;想要做出美观好看的网页&#xff0c;CSS是必须的 引入外部样式表&#xff1a; 它的属性 rel 和 type是固定的 语法&#xff1a; <link rel"styles…

16 SysTick—系统定时器

文章目录 16.0 前言16.1 SysTick 简介16.2 SysTick 寄存器介绍16.2.1 CTRL 控制及状态寄存器16.2.2 RELOAD 重载数值寄存器16.2.3 Current当前数值寄存器16.2.4 CALRB 校准值寄存器16.3 SysTick 定时实验16.3.1 编程要点16.3.2 代码分析16.3.2.1 SysTick 配置库函数16.3.2.2 配…

音频编辑软件:Studio One 6 中文

Studio One 6是一款功能强大的数字音乐制作软件&#xff0c;为用户提供一站式音乐制作解决方案。它具有直观的界面和强大的音频录制、编辑、混音和制作功能&#xff0c;支持虚拟乐器、效果器和第三方插件&#xff0c;可帮助用户实现高质量的音乐创作和制作。同时&#xff0c;St…

Java基础之虚拟机

1、前言 本篇基于网络整理&#xff0c;和自己编辑。在不断的完善补充哦。 2、什么是虚拟机&#xff1f; Java 虚拟机&#xff0c;是一个可以执行 Java 字节码的虚拟机进程。Java 源文件被编译成能被 Java 虚拟机执行的字节码文件( .class )。 Java 被设计成允许应用程序可以运…

格密码基础:SIS问题的定义与理解

目录 一. 介绍 二. SIS问题定义 2.1 直观理解 2.2 数学定义 2.3 基本性质 三. SIS与q-ary格 四. SIS问题的推广 五. Hermite标准型 六. 小结 一. 介绍 short interger solution problem短整数解问题&#xff0c;简称SIS问题。 1996年&#xff0c;Ajtai首次提出SIS问…

【数据结构】排序算法

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 &#x1f38f;排序的定义 &#x1f38f;排序的稳定性 &#x1f4cc;稳定性的定义 &#x1f4cc;稳定性的意义 &#x1f38f;内排序与外排序 &#x1f38f;八大内排…

GitHub图床搭建

1 准备Github账号 如果没有Github账号需要先在官网注册一个账号 2 创建仓库 在github上创建一个仓库&#xff0c;随便一个普通的仓库就行&#xff0c;选择公共仓库 3 github token获取 github token创建方式可以参考下面的方式&#xff1a; https://www.xichangyou.com/6…

c/c++中static的用法

概述 static&#xff1a; 作为c/c的关键字之一&#xff0c;具有多种含义和应用&#xff0c;static 关键字可用于声明变量、函数、类数据成员和类函数。默认情况下&#xff0c;在所有块的外部定义的对象或变量具有静态持续时间和外部链接。 静态持续时间意味着&#xff0c;在程…