首先要说明一点,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-...阅读全文>>
编写程序Controller接口时,对于参数的验证非常重要,但是多个参数时,如果我们使用IF-ELSE挨个判断,那么程序会非常累赘,此时我们可以考虑使用Spring的Validtion框架,使用注解的方式优雅的编写参数格式的验证。引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</art...阅读全文>>
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: ...阅读全文>>
一个轻量级 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的...阅读全文>>
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。广泛的开源生态:Sentinel 提供开...阅读全文>>
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。广泛的开源生态:Sentinel 提供开...阅读全文>>
Quartz作为开源作业调度中的佼佼者,是作业调度的首选。但是集群环境中Quartz采用API的方式对任务进行管理,从而可以避免上述问题,但是同样存在以下问题:问题一:调用API的的方式操作任务,不人性化;问题二:需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。问题三:调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务;问题四:quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运行任务,会导致节点负载悬殊非常大;而XXL-JOB通过执行器实现“...阅读全文>>
Quartz作为开源作业调度中的佼佼者,是作业调度的首选。但是集群环境中Quartz采用API的方式对任务进行管理,从而可以避免上述问题,但是同样存在以下问题:问题一:调用API的的方式操作任务,不人性化;问题二:需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。问题三:调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务;问题四:quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运行任务,会导致节点负载悬殊非常大;而XXL-JOB通过执行器实现“...阅读全文>>