REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。在文章,windows下安装redis及其客户端(htt...阅读全文>>
首先要说明一点,SpringMVC进行JSON序列化处理时,使用的工具包是Jackson。与其他 Java 的 json 的框架 Gson 等相比, Jackson 解析大的 json 文件速度比较快;Jackson 运行时占用内存比较低,性能比较好;Jackson 有灵活的 API,可以很容易进行扩展和定制。Jackson 的 1.x 版本的包名是 org.codehaus.jackson ,当升级到 2.x 版本时,包名变为 com.fasterxml.jackson,本文讨论的内容是基于最新的 Jackson 的 2.9.1 版本。Jackson 的核心模块由三部分组成。jackson-...阅读全文>>
常见的两种创建线程的方式。一种是直接继承Thread,另外一种就是实现Runnable接口。这两种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。Future模式的核心思想是能够让主线程将原来需要同步等待的这段时间用来做其他的事情。(因为可以异步获得执行结果,所以不用一直同步等待去获得执行结果)。这里给一个实际使用的案例代码,理论是一样的,但是编码方式有多种。关于代码的注意点和说明,都在注释里面,由于案例比较简单,这里不再啰嗦。package com.example...阅读全文>>
编写程序Controller接口时,对于参数的验证非常重要,但是多个参数时,如果我们使用IF-ELSE挨个判断,那么程序会非常累赘,此时我们可以考虑使用Spring的Validtion框架,使用注解的方式优雅的编写参数格式的验证。引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</art...阅读全文>>
很多编程语言都有位运算符,Java语言也不例外。在Java语言中,提供了7种位运算符,分别是按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)、带符号右移(>>)和无符号右移(>>>)。这些运算符当中,仅有~是单目运算符,其他运算符均为双目运算符。在讲解这些运算符的使用之前,必须了解一个常识,那就是:位运算符是对long、int、short、byte和char这5种类型的数据进行运算的,我们不能对double、float和boolean进行位运算操作。如果你要理解本文章的理论和逻辑,可以参考,有人写了我就不啰嗦了全网首发:12...阅读全文>>
log4jdbc is a Java JDBC driver that can log SQL and/or JDBC calls (and optionally SQL timing information) for other JDBC drivers using the Simple Logging Facade For Java (SLF4J) logging system.新入手一个项目,想要了解其业务逻辑,看其SQL是必不可少的,但是为了更明了的学习,我们往往需要把SQL拿出来,调试和验证。在SpringBoot集成MyBatis中,如果想要打印SQL,很简单:mybatis: ...阅读全文>>
开始时经常遇到这种情况,端口被占用了,可能是已经启动了服务,也可能服务挂了但是端口被占用中导致无法重启。这个时候,需要根据端口,找到服务进程,然后强制关闭掉。开始菜单运行CMD,或者是 window+R 组合键,调出命令窗口。也可以在任意地方,按住Shift后右键,可以打开Shell窗口。例如,我运行SpringBoot,占用端口8080,我们在命令行窗口杀掉这个进程首先执行命令,查看端口占用netstat -aon|findstr "8080"执行命令看是谁占用了,确认一下别搞错了tasklist|findstr "21952&qu...阅读全文>>
一个轻量级 java 权限认证框架,让鉴权变得简单、优雅!https://sa-token.cc/index.html Sa-Token 目前主要五大功能模块:登录认证、权限认证、单点登录、OAuth2.0、微服务鉴权。登录认证 —— 单端登录、多端登录、同端互斥登录、七天内免登录权限认证 —— 权限认证、角色认证、会话二级认证Session会话 —— 全端共享Session、单端独享Session、自定义Session踢人下线 —— 根据账号id踢人下线、根据Token值踢人下线账号封禁 —— 登录封禁、按照业务分类封禁、按照处罚阶梯封禁持久层扩展 —— 可集成Redis、Memc...阅读全文>>
简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件https://jpom.top/pages/install/ 介绍:方便的用户管理用户操作监控,监控指定用户指定操作以邮件形式通知多用户管理,用户项目权限独立(上传、删除权限可控制),完善的操作日志,使用工作空间隔离权限账号可以开启 MFA 两步验证提高账号安全性界面形式实时查看项目运行状态、控制台日志、管理项目文件在线修改项目文本文件Docker 容器管理、Docker swarm 集群管理 Docker UI在线 SSH 终端,让您在没有 Xshell、FinalShell 等软件也能轻松管理服务器 SSH终端登录 Jp...阅读全文>>
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。JWT官网: https://jwt.io/ JWT(Java版)的github地址:https://github.com/jwtk/jjwt 之前写过两篇关于JWT的...阅读全文>>