JAVA-Actual-Combat-5

Java实战 (Jwt令牌生成) 5

简介

JWT (JSON Web Token) 是一个开放标准[2],它定义了一种以紧凑和自包含的方法,用于在双方之间安全地传输编码为 JSON 对象的信息。

因此,简单来说,它是 JSON 格式的加密字符串,其中包含敏感信息,它使我们能够验证不同服务间的发送者。

JAVA-Actual-Combat-4

Java实战 (Mybtis-Plus基础设置) 4

简介

1.在我们对数据库进行增删改查的时候,往往需要按照一定的规范。就比如阿里的规范,数据库中的表需要有 gmt_Create、gmt_Modified 等字段,那么我们在编写实体类的时候会有大量的重复代码,这时候我们需要一个基础的实体类,让我们后面要定义的实体类都继承该类,使得我们实体类代码减少。往往这些字段需要程序自动维护,Mybatis-Plus也提供了该功能。

2.在一些情况下,我们需要伪删除,Mybatis-Plus已经提供了该功能,我们只需要少许的配置即可。

3.Mybatis-Plus支持分页功能,我们只需要在配置类中将该功能打开即可。

4.Mybatis-Plus可以读取数据库表信息,自动生成代码骨架减少开发时间

JAVA-Actual-Combat-3

Java实战 (全局异常处理) 3

简介

开发过程中异常处理是比不可少的,所以写一个全局异常是一件势在必行的一件事情,全局异常往往需要配置好全局的枚举类型的返回值(全局的枚举类型配置,请看前面的文章)。

JAVA-Actual-Combat-2

Java实战 (Swagger配置) 2

简介

在前后端分离的情况下,需要一个良好的接口文档,使前后端不需要太多的沟通就能按照接口文档进行工作的进行。而Swagger就是一个非常好的一个接口文档生成工具,他能够使后端开发人员不需要编写页面,只需要在对应的类上配置好注解就能够自动生成一个Swagger接口文档页面。

JAVA-Actual-Combat-1

Java实战 (前后端返回类型) 1

简介

在前后端分离式的开发环境下,前后端的交互大多使用json格式的数据来交互。那么这个json格式的数据需要有一个统一的枚举工具类来实现,使后端能够轻易的将程序运行过程中的一些信息传递给前端开发人员。

Spring-Security-BASE-3

Spring Security 基础 3

转载:https://blog.csdn.net/REX1129/article/details/114589484

源码下载: 下载

SpringSecurity 微服务权限方案

1. 什么是微服务

1、微服务由来

微服务最早由 Martin Fowler 与 James Lewis 于 2014 年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是 HTTPAPI,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持最低限度的集中式管理。

Spring-Security-BASE-2

Spring Security 基础 2

1. 基于数据库的自动登录

实现原理:首先用户登入成功后,会生成一个 token(加密串),这个 token,一边相应给浏览器,放到 cookie中,一边使用 token 和用户信息 存储到数据库中,而以后再次访问时,浏览器获取 cookie信息,拿着cookie信息到数据库进行比对,如果查询到对应信息,则认证成功,实现自动登录

Spring-Security-BASE-1

Spring Security 基础 1

SpringSecurity 框架简介

1.1 概要

Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。

正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分,这两点也是 Spring Security 重要核心功能。

(1)用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。通俗点说就是系统认为用户是否能登录

(2)用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户
所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以
进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的
权限。通俗点讲就是系统判断用户是否有权限去做某些事情。

Netty-BASE-3

Netty 基础 3

转载:https://youthlql.gitee.io/

Google Protobuf

编码和解码的基本介绍

1.编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码[示意图]
2.codec(编解码器)的组成部分有两个:decoder(解码器)和 encoder(编码器)。encoder 负责把业务数据转换成字节码数据,decoder 负责把字节码数据转换成业务数据

Netty-BASE-2

Netty 基础 2

转载:https://youthlql.gitee.io/

Netty 概述

原生 NIO 存在的问题

1.NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。
2.需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 Reactor 模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的 NIO 程序。
3.开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等等。
4.JDK NIO 的 Bug:例如臭名昭著的 Epoll Bug,它会导致 Selector 空轮询,最终导致 CPU100%。直到 JDK1.7 版本该问题仍旧存在,没有被根本解决。

Netty 官网说明

官网:https://netty.io/

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

|