00:00
好,那么接下来呢,在MYSQL这套provider里边啊,我们要想编写具体的代码,还是要先引入依赖。哎,那么。现在正在听课的同学哈,大家或许已经有了这样的感觉,或许你以后慢慢会有这样的感觉,就是说我们自从用了没在干活以后,其实呢,干什么,凡事哈,总是先引入依赖,然后再去说别的,哎,没有依赖的话,你写配置文件也写不了,你写Java代码也写不了,哎,所以说万事呢,都是从引入配置文件啊,引入依赖开始的。这里边我们需要引入的呢,是你看啊,是一个NAS的discovery,哎,引入了这个NAS discovery,我们才能够去注册发现服务啊,在nacos这个注册中心上面注册发现服务。然后呢,这个这是我们通用map的启动器啊,就是这个时候,这个也只有在MYSQL这大provide里边才会用到它,哎,MYSQL的数据库驱动。
01:04
哎,这是数据源的starter,这是我们外部场景的starter啊,因为他也需要对外暴露服务,也需要允许别人通过网络访问他,所以他需要这个web的启动器。呃,Commons浪三这个是一个编码工具包啊,比如说什么类似spring提供的BS呀之类的啊,在这个里边。然后这是做测试用的。哎,这是一个我们的,呃,用于做热部署的,字面意思是一个开发工具包是吧?呃,你看它的范围呢,就是一个runtime的一个范围啊,呃,实际上它的意思表示是说runtime本身表示是说我开发的时候用不着,实际运行的时候需要,然后呢,这又加了一个optional表示呢,这个依赖呢是可选的,哎,后边我们会解释哈,这个optional是什么意思,也是在我们第呃第第第第第第第第第第第第九章啊。也就是下一张里边会去介绍。呃,然后呢?这个这是我们的贝斯知识要求是吧?啊,所以说我们这里边呢,需要拿进来的是前面这些。
02:16
好嘞。这些拿进来以后呢,我们先看一下我们的这个Java代码哈。你看我们需要写的这里边哈,Controller service map,这不就还是我们的三层结构吗?只不过作为一个spring的微服务,我们还需要一个主启动类,我个人习惯上把主启动类起名字叫做mean type,哎。那么我们这个做的话呢,具体从哪开始做呢?我是这么认为的哈,反正你最后调用的时候呢,是这些都要用,包括我们的ya或者properties这样的配置配置文件,反正你最后调用的时候呢,是都要去有的,那么只要你自己心里边思路很清晰,你是从controller开始,哎往下写,还是从下边map开始往上写,哎还是先写它,还是最后再写主启动类啊都可以。
03:10
啊,都可以,只要你自己清楚啊,然后这个呃,循序渐进的一步一步的往前边去走都行啊,那么我们这儿呢,就按照我这个文档里边的顺序呢,咱们先从这个map开始,哎,呃,我们emp map啊,继承这个通用map提供的这个接口,传一个实际类类型的泛型进去,这里边我们就不需要再去写什么了啊,你常规操作就不需要我们再去写了。接口,Com,点艾特硅谷,点per count。点map。
04:08
嗯,Map加e map。然后。Map。啊,打包。哎,这时候导啊,你看这个map有好多map啊,前面这三个都叫map啊,别导错了啊,别导错了,哎,我们要的是TK开头的这个,这是我们通用map。范传emp,哎,这就够了。然后呢,再接下来service的接口。我们找到我们的。啊,这个地方我们也按照以前的惯例,我们来截个图吧。
05:01
让大家能够去明确知道他在我们总体的项目结构当中是在一个什么位置。幺六。哎。Service接口。我们先建出来这个包。我习惯上呢,把接口放在API的子包里边,把时间类呢放在I的子包里边。
06:06
诶,然后呢,建这个接口叫p service,里边就写这么个方法,Get EP by login info,根据我们的登录的信息来查询获取一个ERP对象。EP呢,需要打包好。然后呢,接下来啊,这个截个图。这是my data provider里边的一个service。哎,你看我们的这个分布式架构哈,它的每一个拈,哎每一个微服务的里边,其实呢,也都还是三层结构,只不过呢,咱说哎我们现在呢,把这个访问数据库的这个功能呢,给抽取出来了,那么别的模块呢,就不需要哎自己去维护这个访问数据库的功能了,这就调我们这个微服就行。
07:09
所以说呢,有的有的为服务的里边啊,是三层结构的,呃呃,做了调整的结果啊,但是我们可以基于三层结构去和我们现在的微服务的内部的结构呢,进行一个对接啊,所以说以前学的在单一架构学的东西,到这儿呢,仍然是有用武之地的啊,他们这个体系结构呢,其实都是一脉相承的,都是在原有的基础上再进一步的去拓展啊,延伸啊,然后和这个新的知识点去对接,并不是并和前面其实并没有这个绝对的断层啊,它并不是,并不是空中楼阁。哎,下边我们service的这个具体实现。先建一下这个类。
08:09
哎,四位字注解肯定是要加,然后呢,加一个传三声能注解。呃,指定一下我们事物的传播行为啊,Propagation啊,然后呢,让他用一个我们的request。哎,保证呢,每一个事物都是我们自己新开的啊,我们只在自己新开的事物里边运行啊,然后呢,默认设置为read o等于处,如果有增删改的方法,你再单独的设置read o等于false,这样的话就每个每个方法呢,它就都有这个事物的注解。接下来呢,看一下这个方法怎么去实现呢,这肯定是需要配我们的的。然后呢?在这里边哈。呃,EP的map点有一个我们。
09:04
Select。By example哎,那我们就需要去创建这个example的对象,Example的对象从哪来呢?这个我们直接去扭一下就行了啊,你看这个包呢,也是TK开头的。然后呢,怎么知道他操作的是我们emp这个实体类呢,哎,把这个emp的class给它传进去。这儿呢,是我们创建一个example对象,用于封装哎,这个查询条件,而我们查询条件我们要封装的是什么查询条件呢?就是这个login account和login这个password。只不过呢,这个logging password呀,它需要进行加密啊,加密以后啊,再进行一个哎查询操作,所以说在这个查询封号查询条件之前,得先去进行一个密码的加密,根据。
10:06
把明文加密成密文,然后根据密文去进行查询啊,因为这个密码是不能够解密的啊,没有能力解密的。Coed。Log password。然后呢,下边我们就封装查询条件,哎,也是可以说叫做QBC查询create criteria。点and,呃,Equal to,哎,这边指定属性和值属性呢,就是我们这个和这这个属性是一样的哈,Log account。值就是log count,然后再按着一个e to。Logging password。属性是这个属性,然后呢,这个值是这个加密以后的。
11:01
为了看着看着好看一点,我们给它呢来一个缩进。诶,封装好查询条件这边呢,会返回它的一个list。那么我们要的话呢,只返回一个啊,所以说在这呢,我们去做一个判断,如果EP list呢,它。等于no啊,或者说呢,EP list.size呢,是等于零的,说明就什么都没有查着啊,一根毛都没有查到,那么我们就抛一个异常。哎,登录失败的这个异常,然后里边给一个提示消息。哎,说明说你登录失败了啊,然后如果说呃,Dp list不是now,它的size啊,长度也不是零,那么我们就GET0,把这个唯一的ERP对象给返回就好了,哎,这样的话我们就完成了一个service的一个查询。
12:09
接下来呢,就看我们这个controller层怎么去写。
我来说两句