00:00
开发这一块呢,我们上午呢,最后一件事情就是先做一个测试啊,测一下我们刚才搭建的这个red的基础环境呢,是可以连接到我们的Windows服务器的,那做什么测试呢?做一个存值的测试,再做一个什么测试呢?再做一个取值的测试,好我们先来说存值的测试,那我们首先呢,在我们的测试目录当中创建一个类测试类叫read template task,好,所以呢,我们找到我们的测试目录。上面,然后找到test,然后在这个地方呢,新建一个叫做red temp test,然后在嗯这个里面呢,我们去写一下我们的基础的特殊环境,叫做。Boot test,还有呢,就是run with spring。嗯,应该是spring run.class好,然后接下来呢,在这里面呢,我们把red,呃注入进来,诶我们注什么呢?就直接注private。
01:11
Template。注一个叫做呃,Red template的啊好,那这个red template在哪呢?我得把这个今天给它加载一下。下载完了。Resource。稍等啊。叫做time。好,然后呢,Red template这样就加载进来了,明白哈,就是你要稍微等一会,等妈他把它所有的这个依赖啊,都给它漏进来,都引进来,然后把依赖关系处理好,然后这边写就可以了,否则的话他加载不进来哈,这东西,然后接下来呢,我们在这个里面呢,再以一个什么呢,以一个。
02:20
嗯,Di map就是叫map好,然后接下来呢,这面我们写test啊,然后我们写public wide save date叫保存数据字典的数据,然后接下来呢,我们从date matter当中去SELECT1条记录,比如说select把ID啊,就ID等于一的那条记录吧。嗯,ID等于E的那条记录,管它是啥,反正给它取出来哈,就是它哈,全部分类就同行们啊,然后接下来呢,拿到之后呢,我们就把它存到red里面,怎么存呢?用这个red template的对象来red template.ops for value啊,然后点site好,然后这边呢我们写,然后接下来呢写date,就是把这个Di对象呢啊,用这个字符串的形式哈,存到这个date里面,OS for value就是存字符串啊存字符串,然后接下来呢,Set Di date就是把这个对象以字符串的形式存在这个date属性当中,那么字符串怎么以字符串的形式存呢?是以它的这个序列化的方式去存,因为你看我们所有的这个类后面不都employments呢civil了嘛,所以呢,它自动呢会调用啊JDK的序列化方案,把这个类的对象。
03:56
把序列化成JDK的那种序列化字串,然后呢,就可以存到我们当前的这个date啊这样的一个啊键当中了,然后呢,我们也可以在这个方法当中呢,定义一个。
04:08
存储的这个数据过期时间,比如说这面呢,是缓存的有效时间,比如说叫time unit,然后点may minutes,那这个呢,就是以分钟为单位,那多少分钟呢,我们可以在这个地方定一个存储,那就是五分钟啊好,有效时间是五分钟,那这样的话呢,我们就做了一个初步的一个数据的存储,所以接下来呢,我们来看一看能不能生效哈,啊先来检查一下我red服务器是不是真的运行起来了,怎么检查呢?最简单的方式呢,就是我启动一个客户端。然后呢,把它打开。嗯。SANOS7哈。好,这就说明我已经连上了对吧?嗯,所以就启动起来了,启动起来之后呢,在这面我就直接运行。
05:08
应该是。那等一下啊,好运行。首先呢是初始化我们的spring环境啊前面,然后接下来呢,是从数据库中取数据,然后最后呢是往red当中存数据,所以这一系列的日志呢,我们也可以看出来它这样的一个流程,好然后接下来呢,我们来看一下red数据库当中,大家看这里面呢,就有一个记录就存进来了,但是这个记录存的呢,嗯,不太友好,就看起来不太友好,为什么?因为它是序列化存进来的,而且呢用的是JDK的序列化,这个呢,就是被JDK序列化之后的字符串,我们读起来呢比较困难啊,前面这块呢,就是你JDK序列化的数据类型是什么,这个的数据类型后面呢就是每一个字段啊,它的具体的内容,然后这面呢,就是实际上GDK序列化的时候呢,它还会把这个键也序列化出来键,它的序列化方式呢,是用JDK的字符串序列化方案,前面呢,也是加了这样的一大堆这样的unicode码,然后后面呢,再加上这个它的这个属性名字啊,那这些呢完全都是。
06:18
默认的一个序列化方案,那么大家要注意的就是前提是我们所有的实体类,就是你要被你存到red当中的这个实体类,比如说date啊,它必须是可被序列化的。我们找到这个date,它必须是可被序列化的,如果这个实体类没有去实现接口的话,那么我们这种用默认的序列化方式就没有办法存到数据库当中,同样这个时候就会报错啊好,所以这是为什么我们一般情况下,在啊初始化啊,这个实体对象的时候啊,一般都会给它弄一个序列化,这个是有一些存储工具里面,它需要序列化存储。当然在我们这个项目当中呢,我们后面呢,要用其他的虚拟化方案呢,去改造它,为什么?因为这个可读性不高,而且呢占的空间存储空间还大,另外呢,它的安全性也低啊,就是Java jdk虚拟化本身就存在安全隐患,所以呢,我们要去给它改造,改造成什么呀,改造成Jason序列化方案,那么Jason序列化方案怎么改呢?我们来看一下这面呢,有一个叫做red的配置文件,这个配置文件当中呢,就进行了Jason序列化的改造,当然了这个里面的改造的内容啊,它的这个知识点比较多,所以呢,这个我们下下午的时候再说,然后大家有兴趣的话呢,你可以先把这个代码去给他整合到我们项目当中,然后再重新的进行代码的存值测试,先预习一下哈,先看一看它这里面都改造了什么内容,好,那所以这块就是我们需要对我们的red,也就是说它这个consideration啊。
07:59
啊,需要对我们的red template这个对象进行配置的几个方面啊,几个方面里面有非常多的内容啊,我先简单的给大家说一下,它包括K的序列法,也就是说包括这个这个值要用正常的字符串的序列化方案,而而不是用JDK弄出这样的一个一大串没有用的东西,然后第二呢,就是要进行value的循环。
08:23
啊,这个VALUE6的序列化,我们要序列化成Jason字符串的形式,所以呢,后面呢,我们就会引入一些Jason对吧,Jason的序列化方案,然后再有呢,就是在引入这个Jason序列化的过程当中呢,会有一些坑需要我们去排啊,包括有一些数据类型的序列化的默认情况下呢,也要也需要我们去处理,比如说这个。这种数据类型它叫local data time啊,我们之前定义时间日期类型呢,都喜欢用这个data是吧,然后在咱们这个项目当中,它默认情况下,代码生成器给我们生成的是这个啊,当然了,我们也可以在代码生成器当中进行配置啊,生成这种数据类型,那为什么我们没有配置呢?是因为啊,这种数据类型呢,在JAVA8的时候其实就被啊。
09:12
呃。就是不建议你使用了,对吧?啊,这里面有呃,几乎所有的方法都淘汰掉了,而且呢,它的呃格式转化呢,是不支持多线程的并发,并发是不安全的啊,然后呢,所以呢,JAVA8当中就引入了这个local data time这样的一个时间日期数据类型,那么它呢,是支持并发安全性的一个并发的并发操作的,然后另外呢,它里面的这个方法呢,获取时间日期的这些方法呢,效率也会更高一些啊,但是它有一个问题,就是它结合着我们之前已有的这些,比如说red序列化呀,它的序列化呢,是没有办法,就是默认被执行的,它的序列化会出现非常多的序列化以及反序列化的问题,所以在这个地方。在这个地方我们就专门针对啊,那个时间日期类型,序列化以及反序列化过程当中出现的问题进行总进行一个处理明白哈,所以这块其实是处理序列化以及反序列化问题的一些坑的啊,那所以呢,这个我们下午都讲一下,然后大家要是有时间的话,可以自己先看一看,先读一读好吧。
我来说两句