玩转SpringBoot之捣鼓 Redis】的更多相关文章

我们都知道,把首页数据放到Redis里,能够加快首页数据的访问速度.但是我们要如何准确又快速的将 Redis 整合到自己的 SpringBoot2.x 项目中呢?今天阿淼就带大家爬一爬其中的门门道道. 序.Redis 介绍 Redis 使用了浪费流量的文本协议,但因为它数据存储在内存中的,相对而言,依然可以取得极高的访问性能.并且 Redis 是线程安全的. RESP 就是 Redis 序列化协议的简称.它是一种直观的文本协议,优势在于实现异常简单,解析性能极好. Redis 协议里面虽然有大量…
看了下,距离上次发帖都是去年10月份的事,忙于工作的我很少跑博客园里面来玩了. 做这个小网站的初衷是 https://tinypng.com/ 这个网站有时候访问很慢,然后自己去研究了下图片压缩. 网上有看到 https://tinypng.com/ 中使用的 pngquant , 我去下载了pngquant的cli看了下,然后就开始了这个小网站的基础. 先看看前端页面: 这个功能还会扩建,所以现在界面只有简洁的一部分. 现在的功能基本上只有图片压缩和打包下载, 前端页面用到的: vue.web…
前言 在<玩转 SpringBoot 2 之整合 JWT 上篇> 中介绍了关于 JWT 相关概念和JWT 基本使用的操作方式.本文为 SpringBoot 整合 JWT 的下篇,通过解决 App 用户登录 Session 问题的实战操作,带你更深入理解 JWT.通过本文你还可以了解到如下内容: SpringBoot 使用拦截器的实际应用 SpringBoot 统一异常处理 SpringBoot 快速搭建 RESTful Api 关于生成JWT 操作请参考 <玩转 SpringBoot 2…
自动配置隐含两层含义,要搞清楚 上帝让程序员的发量减少,是为了让他变得更聪明,如果有一天聪明到了极点,那就是绝顶聪明. 据说在大脑高速运转下,这样更有利于散热,不至于核心温度过高而产生告警. 聪明的大脑是用来思考的,现在就来深入思考和分析下自动配置. 自动配置包含两层意思,一个是配置,一个是自动.这不废话嘛. 配置存在的一个前提是,要有选择才行,如果没得选择,就不用谈配置了. 比如十几年前读大学时,无论是回家还是去学校,都只能坐最便宜的硬座.因为没得选择. 现在情况就不一样了,高铁.动车.飞机都…
上一篇文章中提到的条件注解,只是自动配置整体解决方案中的一个环节而已,可以说是管中窥豹. 本文就逐步擦除迷雾,让整体浮现出来,这样就会有一个宏观的认识. 除了写代码之外,还能干点什么? 提到“配置”这个词,我们不一定知道它是什么,但绝对知道它不是什么,显然,不是写代码. 那对于用户(使用SpringBoot框架的人)来说,除了写代码,还能干点什么呢?这非常重要. 因为自动配置的整体方案最后必须落到“写代码之外”的范围来实现,这才叫配置,否则只能叫“编码实现”了. 我认为以下这些内容,都不叫写代码…
喜欢写代码,讨厌配环境 我相信这十个字的小标题代表了大多数码农的心声. 十年前读大学时,学校开设了C语言还有C++.但是学习这两种语言,对于新手来说非常没有成就感. 于是我就在校门口买个光盘,装个VS(宇宙第一IDE),还有离线中文版MSDN(最牛的帮助文档),万事已俱备. 学习C#语法,看类的API,然后从WinForm(窗口)开始,用鼠标拖拽控件,设置控件属性,观察自动生成的代码,开启人生的编程之路. 大四的时候接触到Java,首先就是配置环境变量,那时觉得是一个巨复杂的东西,每次都要网上搜…
寄人篱下的日子 一直以来受传统影响,我们的web工程总是打成war包,然后放入tomcat的webapps目录下面. 如下图01: 当tomcat启动时,会去解压war包,然后运行web工程.这大家都非常熟悉了. 用一个抽象的图形表示,就是这样子.如下图02: 在一个大大的tomcat里面,有一个小小的war包,貌似没有地位啊. 不知道有没有人思考过这两个问题: 1)Spring在哪里? 2)tomcat和war包是如何联系上的呢? 对于第一个问题,因为我们的web工程是使用spring-web…
其实web服务器是会处理错误的 在web.xml还是随处可见的年代时(确实有点老黄历了),下面的这些配置应该都不陌生. 根据错误代码处理错误,如下图01: 根据异常类型处理错误,如下图02: 不过我们更加熟悉的应该是SpringMVC的统一异常处理.如下图03: 看到@ControllerAdvice注解和@ExceptionHandler注解都应该很熟悉吧. 处理原理就是在捕获到业务Controller有异常抛出时,根据异常类型来这里找到对应的方法并执行. 可见,整个异常的处理过程都是在Spr…
生命周期和事件监听 一个应用的启动过程和关闭过程是归属到“生命周期”这个概念的范畴. 典型的设计是在启动和关闭过程中会触发一系列的“事件”,我们只要监听这些事件,就能参与到这个过程中来. 要想监听事件,首先得有事件监听器,就是常说的Listener.下面就是Spring提供的监听器,如下图01: 按规定所有的监听器都要继承Java提供的EventListener接口,这个接口是一个空的marker接口,其实就是标识一下. 事件一般都有多个,一般也有两种常用解决方法: 要么定义多个监听器接口,一个…
同步代码写起来简单,但就是怕遇到耗时操作,会影响效率和吞吐量. 此时异步代码才是王者,但涉及多线程和线程池,以及异步结果的获取,写起来颇为麻烦. 不过在遇到SpringBoot异步任务时,这个问题就不存在了.因为Spring家族是最替用户考虑的. 结果就是,像同步一样简单,像异步一样强大. 众所熟悉的同步代码 先准备一些代码,为了模拟耗时操作,在其中加入线程睡眠语句. 同时打印出运行这些代码的线程信息.如下图01: 其中一个是没有返回值的,一个是有返回值的. 然后把它注入到另一个类里进行调用,在…