1.昨天为了将两个项目推送到远程仓库,了解了一下分支,将一个小工程作为一个分支,这是发生在git add .,git commit -m "描述"以及git reomte add origin HTTP之后的
  1. 获取当前仓库的分支
git branch
  1. 检查分支
git checkout branch
  1. 推送项目文件到分支
git push origin "分支名"
 
2.首先创建了一个test的数据库,然后创建了:sys_user、sys_role、sys_user_role三张表,并插入张表的数据;
 
3.编写了sso-common模块的payload(载荷)和result(结果)实体类;再编写了JsonUtil,JWTUtil以及RsaUtil等工具类
  1. 载荷
@data//get,set
public class Payload<T> implements Serializable{
private int id;
private T userInfo;//用户信息
private Date exppiration;//过期时间
}
  1. result
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result implements Serializable{
private Inteher code;
private String msg;
private Object data;
}
  1. JsonUtil
public class JsonUtil{
private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class);
private static final ObjectMapper mapper = new ObjectMapper();
//将指定对象序列化为一个Json字符串
public static String toString(Object obj){
if(obj == null){
return null;
}
if(obj.getClass() == String.class){
return (String)obj;
}
try{
return mapper.writeValueAsString(obj);//将obj序列化为JSON字符串
}catch(JsonProcessingException e){
logger.error("JSON序列化出错:"+obj, e);
return null;
} //将指定JSON字符串、输入流解析为指定数据类型
public static <T> T toBean(String json, Class<T>tClass){
try{
return mapper.readValue(json, tClass);
}catch(IOException e){
logger("json解析出错:"+json, e);
return null;
}
} //将指定JSON字符串解析为指定数据集合、键值对集合、复杂类型对象
public static <E> List<E> toList(String json, Class<E> eClass){
try{
return mapper.readValue(json, mapper.getTypeFactory()
.constructCollectionType(List.class, eClass));
}catch(IOException e){
logger.error("json解析出错:"+json, e);
return null;
}
}
}
}
  1. JwtUtil:生成和校验token
//1.生成一个字符串类型的base64的JTI(JWT的位移身份标识)密码

//2.私钥加密token(分钟)

//3.私钥加密token(秒钟)

//4.公钥解密token

//5.根据token获取用户信息

//6.根据token获取载荷信息
  1. RsaUtil
//1.从文件中读取密钥

//2.从字节数组中获取公钥

//3.读取路径文件返回字节数组类型
 
4.反思:自己每天代码花崽总结上面很久,为什么不用每个方法的文字俩表达这个具体函数呢,这样不是更加透彻,而且时间更快;到一周总结的时候,把这些代码实现一遍;这样可以更好地节约时间,也可以更好地理解
 
5.复盘:根据现在有的代码回忆起以前的一些知识,将对象序列化为一个JSON字符串,解析字符串为指定类型;再就是一些工具类的编写其实都是固定的一些条件和步骤,这些只要熟练了就知道,就算忘记,看一下也清楚;

3.载荷和结果实体类以及Jwt的更多相关文章

  1. .NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator

    去年,我在一篇文章用原始方法解析复杂字符串,json一定要用JsonMapper么?中介绍了简单的JSON解析的问题,那种方法在当时的环境是非常方便的,因为不需要生成实体类,结构很容易解析.但随着业务 ...

  2. 实体类和DataTable的转换

    引子 最近在项目中在数据库查询的时间,总是要用到数据表到实体类对象列表的转化,自己封装了一个转换的方法,用起来还比较方便,记下来,以后可以重复使用,原理就主要是利用反射,当然有更好的ORM框架可以实现 ...

  3. [转]C#反射,根据反射将数据库查询数据和实体类绑定,并未实体类赋值

    本文来自:http://www.cnblogs.com/mrchenzh/archive/2010/05/31/1747937.html /****************************** ...

  4. 关于entityframework 自动生成实体类中加验证的属性重新生成后属性被覆盖解决办法

    1.手动创建一个部分类 (你可以手动创建 partial class, 内容为空) [MetadataType(typeof(AppleMetadata))] public partial class ...

  5. MVC Code First 当实体类发生变化时,如何自动更新数据库表

    下面做一个例子,Category是用户新建的一个实体类,然后添加一个字段,然后让数据库中的Category表也添加一个字段 1.Category.cs

  6. MVC -- 后台RedirectToAction传递实体类与字符串

    1.MVC -- 后台RedirectToAction传递实体类 RedirectToAction(控制器,控制器方法,实体类) 2.MVC -- 后台RedirectToAction传递字符串 Re ...

  7. XML带多属性解析为一个实体类(利用反射)

    最近在对接一个银行的项目,大概就是类似一个钱包的功能,在请求返回的数据时,发现返回的数据标准的XML格式的支付串,格式如下 <kColl id="inputOrig" app ...

  8. 【Java EE 学习 69 下】【数据采集系统第一天】【实体类分析和Base类书写】

    之前SSH框架已经搭建完毕,现在进行实体类的分析和Base类的书写.Base类是抽象类,专门用于继承. 一.实体类关系分析 既然是数据采集系统,首先调查实体(Survey)是一定要有的,一个调查有多个 ...

  9. Hibernate jpa 在实体类中对于时间的注解

    在时间类型DATE 属性上添加一个 @Temporal(TemporalType.DATE)(精确到年月日)@Temporal(TemporalType.TIME)(精确到时分秒)@Temporal( ...

  10. ABP理论学习之实体类

    返回总目录 本篇目录 实体类 惯例接口 审计 软删除 激活/未激活 IEntity接口 实体是DDD(领域驱动设计)的核心概念之一.Eirc Evans是这样描述的实体的:"它根本上不是通过 ...

随机推荐

  1. Array of products

    refer to: https://www.algoexpert.io/questions/Array%20Of%20Products Problem Statement Sample input A ...

  2. Spring系列之资源-11

    目录 `Resource` 内置`Resource`实现 `UrlResource` `ClassPathResource` `FileSystemResource` `ServletContextR ...

  3. 12.14linux学习第十七天

    今天老刘收了下第13章尾巴,讲了第14章和第15章. 13.6 分离解析技术 现在,喜欢看我们这本<Linux就该这么学>的海外读者越来越多,如果继续把本书配套的网站服务器(https:/ ...

  4. 关于cmake找不到库的问题

    1. Error:Could not find a configuration file for package 解决办法1:将/usr/lib/x86_64-linux-gnu/cmake/.... ...

  5. 《JavaScript高级程序设计》Chapter02 <script>元素

    <script> 现代web应用程序通常将所有JavaScript引用放在<body>元素中的页面内容后面 <!DOCTYPE html> <html> ...

  6. 转 oracle 无法使用sys用户登录 connection as SYS should be as SYSDBA OR SYSOPER

    转自:  https://blog.csdn.net/u012004128/article/details/80781979 安装Oracle11g后,为了测试安装是否成功,通过cmd命令打开了sql ...

  7. WPF dxe:ComboBoxEdit 选择项后并可编辑值

    有个需要,在ComboBoxEdit中选择多个值,并且要求可以直接在后面添加新的值. 开始的时候绑定列表,设置DisplayMember,不能修改. 然后绑定List<string>,不设 ...

  8. vs2019 配置 qt6

    1.下载qt6 我的目录C:\Qt\6.3.1\msvc2019_64\bin C:\Qt\6.3.1\msvc2019_64\include C:\Qt\6.3.1\msvc2019_64\lib ...

  9. LeetCode224 基本计算器

    idea:刚开始是打算分类讨论,建立了数字栈和字符栈,按照传入字符当时两个栈的基本情况分类,结果讨论完之后分类太麻烦,导致分析完了之后漏洞不少.我觉得这道题难点在于括号和负号的处理,一开始将导致计算机 ...

  10. MySQL学习(二)事务的隔离级别

    :规定了一个事务中所做的修改,哪些在事务内和事务间是可见的,哪些是不可见的.较低级别的隔离通常可以执行更高的并发,系统的开销也更低 read uncommitted(未提交读):事务中的修改,即使没有 ...