0

SpringBoot2.x拥抱本地缓存之王Caffeine

环境配置:JDK 版本:1.8Caffeine 版本:2.8.0SpringBoot 版本:2.2.2.RELEASE一、本地缓存介绍缓存在日常开发中启动至关重要的作用,由于是存储在内存中,数据的读取速度是非常快的,能大量减少对数据库的访问,减少数据库的压力。之前介绍过 Redis 这种 NoSql 作为缓存组件,它能够很好地作为分布式缓存组件提供多个服务间的缓存,但是 Redis 这种还是需要网络开销,增加时耗。本地缓存是直接从本地内存中读取,没有网络开销,例如秒杀系统或者数据量小的缓存等,比远程缓存更合适。二、缓存组件 Caffeine 介绍按 Caffeine Github 文档描述,C...

阅读全文>>

0

基于RBAC的权限访问系统基础

需要,基于RBAC的权限访问,采用SpringSecurity安全管理框架+SpringBoot+Mybatis数据库持久框架。数据库设计:user用户名:ennabled,accountNonExpired,accountNonLocked,CredentialsNonExpired默认为1role角色表:permission权限表:user_role 用户-角色中间表:role_permission色色-权限中间表:permission表中初始数据,权限名为permTag编码实现:1.pom.xml,引入了jdbc,thymeleaf,security,web,mybatis,devtoo...

阅读全文>>

0

接入谷歌Google人机验证:reCaptcha进行安全验证

我们在开发网站的时候,经常需要各种人机验证,那我们就来学习下,网站如何接入谷歌Google人机验证:reCaptcha进行安全验证,本次使用的是 Google人机验证 3.0版本 Google人机验证V3recaptcha v3为每个请求返回一个没有用户摩擦的分数,评分是基于用户与您的站点的交互,并使您能够为您的站点采取适当的行动。大约0.5是阀值,低于这个阀值,就需要进行一些识别和处理。申请密钥1、先要有一个google账户,然后再去reCaptcha官网申请网站为:https://developers.google.com/recaptcha/(需要过翻,你懂的)2、去https://ww...

阅读全文>>

0

Lombok在SpringBoot项目的中使用

SpringBoot结合Lombok整合对象我们之前介绍MyBatis Plus,AOP实现日志接口以及Swagger-UI等文章中都是使用了Lombok,可能有些人不是很了解Lombok,下面我们来介绍一下Java中的Lombok库。Lombok介绍Lombok是一个用于简化Java开发的,他的作用是自动插入编辑器和构建工具。通过注解方式,实现getter、setter、eques以及tostring()等方法。在Lombok中添加Maven依赖    <dependency>      &...

阅读全文>>

0

你们要的SpringBoot+JWT来了

什么是JWTJson Web Token (JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)该token被设计为紧凑且安全的 特别适用于分布式站点的单点登录(SSO)场景随着JWT的出现 使得校验方式更加简单便捷化JWT实际上就是一个字符串 它由三部分组成:头部 载荷和签名用[.]分隔这三个部分 最终的格式类似于:xxxx.xxxx.xxxx该服务器直接根据token取出保存的用户信息 即可对token的可用性进行校验 使得单点登录更为简单JWT校验的过程1、浏览器发送用户名和密码 发起登录请求2、服务端验证身份 根据算法将用户标识符打包生成toke...

阅读全文>>

0

Flink与Spring生态完美融合的脚手架工程

还在为开发Flink流处理应用程序时无法像开发Spring Boot程序那么优雅的分层以及装配Bean而烦恼吗?你可能面临如下苦恼:1. 开发的Flink流处理应用程序,业务逻辑全部写在Flink的操作符中,代码无法复用,无法分层2. 要是有一天它可以像开发Spring Boot程序那样可以优雅的分层,优雅的装配Bean,不需要自己new对象好了3. 可以使用各种Spring生态的框架,一些琐碎的逻辑不再硬编码到代码中。GitHub最近超火的一款开源框架,Flink-Boot脚手架,该脚手架简直是Spring开发工程师的福音,完美融合Spring生态体系,再也不需要手动在Java类中创建臃肿的...

阅读全文>>

0

消息队列技术调研

消息队列的协议 AMQP:高级消息队列协议(AMQP,Advanced Message Queuing Protocol),RabbitMQ 和 HornetQ 都实现了该协议。 优势:功能最丰富,能够适用最多的场景。 劣势:其实现上不轻量化。 应用场景:简单的pub/sub模型无法满足要求的场景。 ZeroMQ:这是一种协议,也是一个开源组件,无中心化的broker。 优势:无中心化,速度很快。 劣势:学习曲线比较高。 应用场景:需要海量吞吐和无单点故障的场景 STOMP:面向流文本的消息传输协议(STOMP,Streaming Text Oriented Messaging Protoco...

阅读全文>>

0

细说SpringBoot的自动装配原理

1.什么是SpringBoot?  对于spring框架,我们接触得比较多的应该是spring mvc、和spring。而spring的核心在于IOC(控制反转对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系)和DI(依赖注入IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Co...

阅读全文>>

0

如何在Spring Boot应用启动之后立刻执行一段逻辑

1. 前言不知道你有没有接到这种需求,项目启动后立马执行一些逻辑。比如简单的缓存预热,或者上线后的广播之类等等。如果你使用 Spring Boot 框架的话就可以借助其提供的接口CommandLineRunner和 ApplicationRunner来实现。2. CommandLineRunnerorg.springframework.boot.CommandLineRunner 是Spring Boot提供的一个接口,当你实现该接口并将之注入Spring IoC容器后,Spring Boot应用启动后就会执行其run方法。一个Spring Boot可以存在多个CommandLineRunne...

阅读全文>>

0

JavaScript专业级处理货币类库Currency.js

简要介绍Currency.js是一款专门处理货币值的开源免费的类库。它与Numeral.js非常相似,但是处理货币值上似乎要更专业。通过较灵活的API解决JavaScript常见的浮点问题,加减乘除的计算都可以做,处理货币的时候,还可以把分值单独提取出来,其格式转换的方法也相对工整。目前它在github拥有1.8k颗星,属于活跃项目。最新版本:2.0.3。Github地址https://github.com/scurker/currency.js安装npm install --save currency.js引用<script src="currency.min.js"></...

阅读全文>>