zoukankan      html  css  js  c++  java
  • 个人工作项目总结记录2

      目前参与的项目也已经上线了,业务性比较复杂并且涉及的系统比较多,但是单说技术,没什么亮点,SpringBoot、Elastic-Job(还是未分布式部署)、Shiro等,但是在开发期间还遇到了很多问题,比如:报文如何实现统一加解密并且验签?还有一个让我头疼很久的问题:Transactional注解失效以及wget命令来验证网络的连通性,以上几个问题值得记录一下

      涉及到的技术点,均在该Demo中体现,代码地址:https://github.com/Simple-Coder/mt-demo

      Maven项目结构如下:

    一、报文实现加解密

      一开始想的是写一个工具类,在每一个接口中进行加解密,后来觉得这个想法太蠢了……还有RestControllerAdvice注解,实现很简单:RestControllerAdvice注解+RequestBodyAdvice/ResponseBodyAdvice(2个对应接口即可),并重写接口方法,官方接口方法名通俗易通

    1、请求解密逻辑

     2、响应加密加签逻辑

    二、AOP实现验签

      由于工作项目要求必须验签,自然而然可以想到使用AOP来实现验签,验签通过则执行方法,未通过则重新组装报文返回;切面中也实现了非空字段校验的功能

    三、多线程中事务控制(@Transactional实现)

      在项目由于业务性比较复杂,需要在异步线程中添加事务的处理,我开始的处理方法就是在线程的run方法添加@Transactional注解,发现失效了,后来才发现@Transactional使用没那么简单,所以还是写了一些功夫看了看这个注解,属性说明:https://docs.spring.io/spring/docs/5.0.4.BUILD-SNAPSHOT/javadoc-api/org/springframework/transaction/annotation/Transactional.html

    1、初始解决方案①

    2、初始解决方案②

     3、解决方案

     新类代码如下:

     较好的解决方案:

     4、总结

       ①线程不属于Spring托管,故而线程也不能使用Spring的事务,也不能获取Spring注入的bean在声明式事务管理的方法内开启多线程,多线程内的方法不被事务控制

      ②线程的run方法,它不会抛出异常,但异常会导致线程终止运行,在线程中抛出的异常无法在主线程中通过try/catch来捕获(可用线程的UnCaughtExceptionHandler进行异常处理)

    四、wget验证网络连通性(http协议)

    1、如果访问的目的地址为https协议则使用如下命令

    wget --no-check-certificate "目的连接地址" -e use_proxy=yes -e https_proxy=代理设备IP:端口

    2、如果访问的目的地址为http协议则使用如下命令

    wget "目的连接地址" -e use_proxy=yes -e http_proxy=代理设备IP:端口

    3、结果分析

      (1)如果结果显示 “正在保存至index.html 100%[==================================]”说明网络策略是可用的

      (2)如果显示其他错误码可根据以下错误码排查:

        ①1xx:处理信息,服务器收到请求,需要请求者继续执行操作

        ②2xx:请求成功,操作被成功接收并处理

        ③3xx:重定向,需要进一步的操作以完成请求

        ④4xx:客户端错误,请求包含语法错误或无法完成请求

        ⑤5xx:服务器错误,服务器在处理请求的过程中发生了错误 

  • 相关阅读:
    正则表达式
    Java 基础类型
    2014 新的开始
    (9)Microsoft office Word 2013版本操作入门_文本框_word排版
    (8)Microsoft office Word 2013版本操作入门_制作传单海报
    (7)Microsoft office Word 2013版本操作入门_常用技巧
    (6)Microsoft office Word 2013版本操作入门_文件封面,页首,页尾
    (5)Microsoft office Word 2013版本操作入门_标尺
    (4)Microsoft office Word 2013版本操作入门_插入图片及图片的排版
    (8)Jquery1.8.3快速入门_可见性选择器
  • 原文地址:https://www.cnblogs.com/rmxd/p/12186480.html
Copyright © 2011-2022 走看看