首页 > 其他分享 >2.开发流程-员工操作

2.开发流程-员工操作

时间:2024-06-01 11:46:39浏览次数:20  
标签:对象 depts 流程 员工 JSON 开发 线程 转换器 序列化

开发流程-员工操作:

公用操作:

  • 需要使用默认值时,设置一个公共类,在里面设置对应的常量,方便日后维护;

  • TODO注释:// TODO表示该功能还未做好,先标记下来;

  • BeanUtils:Spring中的对象工具类:

    • BeanUtils.copyProperties(参数一,参数二):对象属性拷贝,将参数一中与参数二相同的属性名,拷贝到参数二中的属性里;
  • DigestUtils:Spring中的加密算法类:

    • DigestUtils.md5DigestAsHex(参数一):将参数一进行md5加密;参数一是字节数组,使用字符串.getBytes()将字符串转换为字节数组;
  • 异常处理:

    • 创建一个类,为这个类添加@RestControllerAdvice注解;
    • 在类中添加对应方法,将该方法添加@ExceptionHandler(异常的class)注解,表示处理什么异常;

ThreadLocal:

  • 本地线程,为每个线程提供一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问;
  • 使用ThreadLocal中的set,get方法来实现跨类,跨方法的传递变量;
  • 需要先创建对应的对象,new ThreadLocal()
  • 常用方法:
    • public void set(T value):设置当前线程的线程局部变量的值;
    • public T get():返回当前线程对象的线程局部变量的值;
    • public void remove():移除当前线程的线程局部变量;
  • 最好将其定义在一个工具类中;

WebMvcConfigurationSupport:

概念和作用:

  • 这个类属于抽象类;需要被继承使用;
  • 实现类需要添加@Configuration注解;
  • 添加自定义的拦截器;
  • 配置消息转换器;
  • 配置视图解析器;
  • 配置资源处理器;
  • 将上述这些方法写在同一个实现类中;

自定义拦截器:

方法:
  • 继承WebMvcConfigurationSupport类,重写addInterceptors方法;
  • 使用方法中的参数调用拦截器的方法,如:
    • addInterceptor("需要指定的拦截器"):指定需要使用的拦截器;
    • addPathPatterns("需要拦截的路径"):指定需要理解的路径;
    • excludePathPatterns("不需要拦截的路径"): 不需要拦截哪些资源;
拦截路径:
拦截路径 含义 举例
/* 一级路径 能匹配/depts, /emps, /login, 不能匹配/depts/1
/** 任意级路径 能匹配/depts, /depts/1, /depts/2
/depts/* /depts下的一级路径 能匹配/depts/1, 不能匹配/depts/1/2, /depts
/depts/** /depts下的任意级路径 能匹配/depts, /depts/1, /depts/1/2, 不能匹配/emps/1

配置消息转换器:

使用:
  • 继承WebMvcConfigurationSupport类,重写extendMessageConverters方法;
  • 在方法体内创建一个消息转换器对象;如:MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
  • 为消息转换器设置一个对象转换器,对象转换器可以将Java对象序列化为json数据;如:converter.setObjectMapper(对象转换器)
  • setObjectMapper方法:设置对象转换器;
  • 将自己的消息转换器对象加入容器;如:converters.add(0,converter);
例子:
@Configuration
public class MyWebMvcConfig extends WebMvcConfigurationSupport {
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        // 创建一个消息转换器对象
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        // 为消息转换器设置一个对象转换器,对象转换器可以将java对象序列化为json数据
        converter.setObjectMapper(new JacksonObjectNapper());
        // 将自己的消息转换器加入容器中
        converters.add(0,converter);
    }
}

对象转换器:

概念:
  • 对象转换器需要继承ObjectMapper类;
  • 在Java中,继承ObjectMapper类可以让我们自定义JSON序列化和反序列化的行为;
使用:
  • 在该实现类中的无参构造里,创建一个SimpleModule对象
  • 使用SimpleModule对象的addSerializeraddDeserializer方法来自定义序列化器和反序列化器;
  • 使用this.registerModule(SimpleModule对象)来将自定义序列化器和反序列化器添加进去;
序列化和反序列化:
概念:
  • JSON序列化:将Java对象转换为JSON字符串;
  • JSON反序列化:将JSON字符串转换回Java对象的过程;
SimpleModule方法:
  • addSerializer(参数一,参数二):将Java对象转换为JSON字符串;为JSON序列化器;

  • addDeserializer(参数一,参数二):将JSON字符串转换回Java对象的过程;为JSON反序列化器;

  • 参数一:需要要序列化或反序列化的类的类型,如:LocalDateTime.class

  • 参数二:自定义的序列化器或反序列化器,一般为对应类型后加Serializer/Deserializer,如:new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"));

  • DateTimeFormatter.ofPattern():用于根据指定的模式字符串创建一个日期时间格式化器;

注意:

  • WebMvcConfigurationSupportWebMvcConfigurer用法差不多;

标签:对象,depts,流程,员工,JSON,开发,线程,转换器,序列化
From: https://www.cnblogs.com/chj020415/p/18225757

相关文章

  • 低代码开发系统是什么?它有那些部分组成?
    低代码开发系统是什么?它有那些部分组成?一、引言在当今快速变化的商业环境中,企业对于快速响应市场需求、降低开发成本和提高开发效率的需求日益增强。低代码开发系统(Low-CodeDevelopmentPlatform)应运而生,它通过减少手工编写代码的需求,提供了一种高效、快速且灵活的应用开发......
  • 1940java swing零售库存管理系统myeclipse开发Mysql数据库CS结构java编程
    一、源码特点   javaswing零售库存管理系统是一套完善的窗体设计系统,对理解SWINGjava编程开发语言有帮助,系统具有完整的源代码和数据库,,系统主要采用C/S模式开发。应用技术:java+mysql开发工具:Myeclipse8.5、jdk。java零售商品库存管理系统二、功能介绍零售库......
  • 1882java密室逃脱管理系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目
    一、源码特点java密室逃脱管理系统是一套完善的web设计系统,对理解JSPjava编程开发语言有帮助采用了java设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使用java语言开发。二、功能介绍(1)......
  • 填IP那个就算是接口式开发,这回随便填
    ///////////////////////////////////////////////////////////usingnamespacestd;#include<stdlib.h>#pragmacomment(lib,"WS2_32.lib")#include<corecrt_wstdlib.h>#include<iostream>#include<stdio.h>#include<Windows.h>......
  • 使用 Vue 3 和 JsBarcode 开发一维码显示组件
    在现代前端开发中,条形码(或称一维码)在许多应用场景中非常常见,例如商品管理、物流跟踪等。本文将介绍如何使用Vue3和JsBarcode库来创建一个灵活的一维码显示组件,并展示如何在应用中使用它。1.安装必要的依赖首先,我们需要安装Vue3和JsBarcode。如果你还没有创建Vue3......
  • Springboot 开发 -- 跨域问题技术详解
    一、跨域的概念跨域访问问题指的是在客户端浏览器中,由于安全策略的限制,不允许从一个源(域名、协议、端口)直接访问另一个源的资源。当浏览器发起一个跨域请求时,会被浏览器拦截,并阻止数据的传输。这种限制是为了保护用户的隐私和安全,防止恶意网站利用用户的浏览器向其他网站......
  • 一对一视频直播app开发,实现跨域的多种方式
    一对一视频直播app开发,实现跨域的多种方式一、document.domain+iframe跨域此方案仅限主域相同,子域不同的跨域应用场景。实现原理:两个页面都通过js强制设置document.domain为基础主域,就实现了同域。父窗口(http://www.demo.com/a.html))<iframeid="iframe"src="h......
  • zabbix4.0服务端 部署全流程
    zabbix服务端1.配置yum仓库#对应了nginx的location设置https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/#安装俩zabbix.repo仓库文件而已rpm-ivhhttps://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm#......
  • Java流程控制
    Java流程控制用户交互Scanner之前我们学的基础语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。基本语法:Scanners=newScanner(System.in)......
  • ci3+smarty模仿开发出dedecms标签
    1、创建块函数functionsmarty_block_b_info($arr,$content,$repeat){  if($repeat){    $ci=&get_instance();    $res=$ci->db->get('val',$arr['limit'])->result_array();    $str='';    ......