本周小结----20211024

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

Oauth2的授权认证

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

语音控制pythonJava

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

大屏天气转换

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

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

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

AOP加解密

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值