SpringBoot实用开发篇复习2
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot实用开发篇复习2相关的知识,希望对你有一定的参考价值。
上次我们学完了实用开发篇1,这次我们继续学习实用开发篇2,该篇包含数据层解决方案、整合第三方技术和监控三大部分,这里面主要还是讨论数据层解决方案我们一起努力学习吧。
对于springboot的实用开发篇1,连接地址如下:springboot实用开发篇1
我们对实用开发篇1进行总结,主要包含三部分,热部署、配置高级、测试,具体如下:
1)手动启动热部署,配置devtools依赖坐标+构建项目,自动启动热部署,在设置->编辑器->自动构建项目,然后在任意开发界面使用组合快捷键ctrl+shift+alt+/ ,选择注册,勾选当app运行时候允许自动构建。
2)在配置文件中可以配置热部署的作用范围,可以在启动类关闭热部署。
3)@ConfigurationProperties注解可以实现bean的绑定,@EnableConfigurationProperties注解也可以进行bean绑定,要输入第三方bean的类名,同时在第三方bean上不需要再加@Component注解。
4)@ConfigurationProperties支持松散绑定,但是绑定的规范要求必须是小写字母、数字、下划线才行,不支持大写字母。
5)JDK8提供了常用的时间和空间单位。
6)对于bean的属性校验,首先需要添加JSR303坐标依赖和Hibernate校验坐标依赖,然后再bean类上加上@Validated注解,开启校验功能,最后对于具体要校验的属性设置具体的校验规则。
7)配置文件yaml支持进制转换,注意配置能写成字符串就不要写成数字。
8)在@SpringBootTest注解中使用propertis参数可以设置测试环境的临时专用属性,另外使用args参数也可以设置测试环境的临时专用属性,另外可以使用@Import注解加载当前测试类的专用配置。
9)在web环境中发送虚拟请求,首先要设置模拟端口,@AutoConfigureMockMvc开启虚拟MVC调用,然后注入调用对象,通过调用对象调用创建的虚拟请求,定义匹配器,通过匹配器定义预期值,将实际值和预期值进行对比 。
10)在测试类上加@Transactional注解,可以对提交的事务进行回滚操作,防止脏数据写入。
目录
2.4、MongoDB的基本操作及springboot整合mongodb
一、数据层解决方案之关系型数据库
1.1、内置数据源
对于先有的数据方案的技术选型如下,主要包含三个方面:数据源,持久化技术、数据库。
我们看一下使用Druid的数据源的配置格式,主要有如下两种。
除了Druid方式配置数据源外,SpringBoot提供了三种内置的数据源配置方式,一般如果不指定配置方式,就默认为HilariCP方式,具体如下:
1.2、默认的持久化技术JdbcTemplate
Spring提供了一个内置的持久化技术,当然用的比较少了,首先需要导入坐标依赖,然后就可以使用了。
当然,可以进行默认的持久化的方式进行配置,具体如下。
1.3、SpringBoot内置数据库
本次讲的内置数据库主要是H2数据库,首先需要配置h2数据库的相关参数,具体如下:
然后创建数据库,即在H2中创建数据库。
在创建数据库之前需要设置访问的数据源,要不然无法登录h2数据库。
H2数据库仅用于开发阶段,对于上线阶段必须把控制台功能关闭,否则会带来安全隐患问题。
二、数据层解决方案之NoSQL
2.1、redis的下载与安装
redis是一款以键值对存储结构的内存级NoSQL数据库,支持多种数据存储格式,支持持久化,支持集群。
首先下载redis的windows环境下的安装包:Releases · tporadowski/redis · GitHub
如下.msi文件,然后双击直接安装即可。
安装完成之后,到安装的位置打开redis文件夹可以发现,主要包含.conf结尾的配置文件和.exe结尾的可执行文件,具体如下:
现在命令行执行如下指令,然后开启一个新的命令窗口。
在新的命令窗口输入以下命令完成redis启动,如下:
2.2、SpringBoot整合redis
主要就分为3个步骤,第一步,pom.xml文件导入redis的坐标依赖,如下:
第2步,配置redis,一般来说,不写配置,也会默认配置的。
第3步,使用RedisTemplate提供的模板进行操作,该接口只能生成相应操作的对象,使用对象的相应方法完成操作。
具体如下,就是将RedisTemplate自动装配过来,然后调用相应的API生成相应的操作对象,根据对应的相应方法完成redis的相应操作,如下是基本键值对的写和读。
上述的方法进行操作是以序列化方式作为键值对和redis客户端不等效,若想和客户端操作等效,需要使用StringRedisTemplate。
2.3、MongoDB简介及下载与安装
MongoDB是一个开源、高性能、无模式的文档型数据库,它是NOSQL数据库产品中的一种,是最像关系型数据库的非关系数据库。一般来说,对于数据修改的频次高,需要很多的临时存储的情况,一般可以考虑使用MongoDB数据库。
首先去官网下载软件,官网地址如下:https://www.mongodb.com/try/download/community
然后双击安装就可以, 选择custom的,设置好安装的位置,一直next就可以了。
安装完成后,首先在data目录下创建一个db目录,如果没有data目录就创建一个。
然后再bin目录下输入cmd,进入命令行, 输入如下命令,启动服务端,并将数据存入data的db目录中。
当我去启动客户端的时候,发现不存在mongo.exe客户端,这是因为我用的是新版的mongodb,需要下载一个mongsh,然后将mongsh作为客户端进行连接服务器就可以了,如下。
当然可以在上述的命令行客户端直接操作mongodb,但是比较麻烦,像navicat管理mysql一样,mongoDB也有可视化管理工具,本文所用的可视化管理工具为Robo 3T,可以去官网下载,具体的下载安装过程参考这篇博文:MongoDB可视化管理工具Robo3T的下载与安装
安装完成后建立本地连接即可,如下所示。
连接成功,如下所示:
注意:其实不同的版本安装实际情况大同小异,如果安装失败,需要结合自己的版本完成相应的安装。
2.4、MongoDB的基本操作及springboot整合mongodb
mongodb中增删改查操作有很多,这里是简单的介绍一下基本的crud操作,具体的操作后面会单独学习。如下:insert添加操作,find查询操作,remove移除操作,update修改操作。
对于springboot整合mongodb的方法如下:
首先在pom.xml中导入monggodb的坐标依赖,如下:
需要怼客户端进行配置,连接到mongodb数据库,如下:
测试的话,是使用MongoTmplate对客服端进行增删改查操作。
2.5、ES简介及下载安装
ElasticSearch是一个分布式全文搜索引擎, 核心工作原理其实就是倒排索引,就是根据数据查ID,即为倒排,最后再根据ID查数据即可。
我们可以去ES的官网下载安装包,大概300多MB,官网地址:Download Elasticsearch | Elastic
下载完成安装包后即可进行安装,具体安装过程如下:
先对压缩包进行解压缩,具体包含如下文件:
直接双击bin文件夹下的elasticsearch.bat,然后等待运行结果就行,当然可能存在服务器启动,但是IP地址访问不了的情况,按照这个配置链接进行配置修改后就可以访问了,输入如下IP地址,可以看到如下的Json字符串则说明访问成功了。即ES安装成功。
2.6、ES相关操作
1)ES索引操作
通过postman模拟发送web请求就可以,发送名称为books的添加索引请求(PUT),其中books为索引请求。索引名称不允许重复。
发送查询索引名称为books的请求(GET),即索引查询,如下:
发送DELETE删除索引请求,如下:
因为索引没有指定规则,若想指定索引规则需要先下载分词器,将分词器解压放到elasticsearch的plugin文件夹内,然后在创建索引的时候为索引指定规则。
注意:ik分词器的版本号必须要和elasticsearch的版本号一致,否则会报错。
2)ES文档操作
在postman模拟web请求添加文档,如下所示,使用_doc请求添加文档。
使用_create也可以请求创建文档,不过需要设置具体的id,_doc可以设置id,也可以不设置,则自动默认生成id。
用_search可以查询全部,按内容查询search?q=具体的json格式的条件,按id进行查询的方法是GET查询的_doc/具体的id
上面是简单说了一下,下面具体总结一下ES创建文档的具体操作。
创建文档有三种操作,具体如下:
对于查询和删除文档,具体的格式如下:
对于文档修改和文档部分属性修改的具体方法如下:
2.7、SpringBoot整合ES
1)首先导入ES的坐标索引,我们用的是高级别的客户端,不需要在配置文件里面写uri,而是在代码中写uri,坐标配置如下。
2)创建客户端,并发送索引请求,如下:
3)对于创建的索引,需要把相应的分词之类的加上去,就是设置索引格式。
4)对于ES添加单个文档,首先需要查询到相应的实体对象,根据对象的id创建索引请求,设置请求格式,并发送添加文档的索引请求。
4)对于批量添加文档,就是使用了一个bulk()方法进行批处理,发送所有的添加文档请求。
5)ES按id查询文档,创建查询请求,客户端请求响应,将响应结果打印即可。
6)按条件查询文档,首先查询索引请求,设置查询条件,客户端发送查询请求,得到查询结果对象,从对象中依次取出Json数据并转换成book对象输出。
以上是关于SpringBoot实用开发篇复习2的主要内容,如果未能解决你的问题,请参考以下文章