栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

本周小结----20211024

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

本周小结----20211024

回忆一下近期做项目,主要有Oauth2的授权认证、语音控制python转Java、大屏天气转换V3、AOP后端解密加密。

Oauth2的授权认证

​ 对于OAuth2授权是第三方应用想控制我的设备,需要先到我这里获取权限,在获取权限的过程中会弹出一个授权框,输入用户名和密码实现授权。蛮复杂的,涉及到的东西蛮多,Spring security这个过滤器链,蛮复杂,需要自己找到切入点,加入自己的东西;涉及到用什么来生成授权码Code,用什么来存储token,这个也是唯一一个能在界面上体现的项目。

语音控制python转Java

​ 这个项目的出发点就是为了在获取后台日志的时候能加快速度,应用之前的python代码会多走一段路,才到我们的服务器,会等个10s;在转换的过程中,就是python中的json形式的response蛮多,在Java中需要定义对应的dto(data transfer object),还有在函数中的第三方请求,在项目中用了restTemplate,可以实现get、post的请求,该项目已经转换完毕,但是还需要仔细的测试,我感觉这一步是比较难的。

大屏天气转换

​ 这个是之前的中间服务器要关闭了,所有需要自己直接去请求终点服务器,需要完善接口,对此在原有的controller,package中增加了接口,实现对需要返回元素的填充;但是这个程序用到了Hbase、Zookpeer,每个dao都用到了相应的注解,并且这些端口都已经被封了,所以经过讨论,从APP端去访问,即从上一层服务去请求;为了填齐元素,需要http请求三个原有的接口,根据现在所了解可以有几种方式:

  1. httpClient:这个直接跳过了
  2. restTemplate:最常见的是这个,比如restTemplate.getForObject(url,String.class)这样,还有MltiValueMap来传递参数。
  3. webClient:依赖于webFlux这个包,集成性比较好,常用build来建立连接,可以使用block(),subscribe()实现异步。

​ 刚开始是用restTemplate实现了get访问,因为用多个访问,所以使用到了异步执行,刚开始是用到了webClient的,但是出了点问题,空指针异常。之后是借用了同事写的actionAsync,用于实现设备群控,借此,我用到了,在程序中CompletableFuture,supplyAsync,CompletionStage,先建立连接,需要返回的类型,之后.join()实现执行,在程序中使用到lambda表达,可以实现异步结果的顺序性,即执行完之后,结果会返回到对应的位置。

AOP加解密

​ 在项目中已经是第二次遇到解密和加密的问题,对前端传来的数据进行解密,接着进行逻辑处理,之后处理的结果进行加密返回给前端。因此,想通过AOP注解的方式把代码抽取出来,想用就用。在AOP中使用了环绕增强;在增强类中,对于appId、signature是放在头部的,利用request去获取,这里获取只能获取一次,如果想用同样的方法获取body就不行了,所以需要将所有的东西进行备份,放在缓存中,实现多次获取。对于body的获取是利用了反射的方式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349064.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号