前言 在开发接口的时候,参数校验是必不可少的.参数的类型,长度等规则,在开发初期都应该由产品经理或者技术负责人等来约定.如果不对入参做校验,很有可能会因为一些不合法的参数而导致系统出现异常. 上一篇文章讲了多种接受参数的方法[快学springboot]3.多种接受参数的方式.因为目前json类型的参数是最常用的,所以这里只讲解json类型的参数校验.其他类型的大同小异. 新建一个Param.java public class Param { private String username; pu…
前往掘金查看:https://juejin.im/post/5d05e5f9f265da1b6c5f74b4 前言 在开发中,我们常常会碰到多种传参的方式.这里,我们就来总结下,springboot中可以运用到的接受参数的方式. URL参数 这种参数,组合在url上,形如url/{id}.在springboot中,接受此类参数可以使用PathVariable注解,如下: @GetMapping(value = "/param/{id}") public Object pathVaria…
前言 之前已经写过一篇文章介绍SpringBoot整合Spring Cache,SpringBoot默认使用的是ConcurrentMapCacheManager,在实际项目中,我们需要一个高可用的.分布式的缓存解决方案,使用默认的这种缓存方式,只是在当前进程里缓存了而已.Spring Cache整合Redis来实现缓存,其实也不是一件复杂的事情,下面就开始吧. 关于Spring Cache的运用,请参考[快学SpringBoot]快速上手好用方便的Spring Cache缓存框架 新建一个Sp…
前言 之前在[快学springboot]6.WebMvcConfigurer配置静态资源和解决跨域里有用到WebMvcConfigurer接口来实现静态资源的映射和解决跨域请求,并且在文末还说了WebMvcConfigurer(springboot2.x之后使用该接口,springboot1.x使用WebMvcConfigurerAdapter类,不过该类已经被标识过期了)可以配置很多东西,如下: 下面,我们就通过代码,使用WebMvcConfigurer接口来实现一个springboot的拦截…
前言 在之前的文章中,讲解了使用redis解决集群环境session共享的问题[快学springboot]11.整合redis实现session共享,这里已经引入了redis相关的依赖,并且通过springboot的配置,实现了session共享.下面,我们就通过springboot提供的RedisTemplate来操作redis. 注入RedisTemplate @Autowired private StringRedisTemplate redisTemplate; 这里我注入了一个Stri…
介绍 当涉及到企业应用程序时,正确地管理对数据库的并发访问是至关重要的.为此,我们可以使用Java Persistence API提供的乐观锁定机制.它导致在同一时间对同一数据进行多次更新不会相互干扰.为了使用OptimisticLocking,我们需要一个实体(Entity),其中包含一个带有@Version注释的属性.在使用它时,每个读取数据的事务都持有version属性的值.在事务想要进行更新之前,它将再次检查version属性.如果值在此期间发生了更改,则抛出ObjectOptimist…
swagger简介 官方的介绍 THE WORLD'S MOST POPULAR API TOOLING Swagger is the world's largest framework of API developer tools for the OpenAPI Specification(OAS), enabling development across the entire API lifecycle, from design and documentation, to test and…
前言 缓存,在开发中是非常常用的.在高并发系统中,如果没有缓存,纯靠数据库来扛,那么数据库压力会非常大,搞不好还会出现宕机的情况.本篇文章,将会带大家学习Spring Cache缓存框架. 原创声明 本文发布于掘金号[Happyjava].Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的个人博客:http://blog.happyjava.cn.欢迎转载,但须保留此段声明. 创建SpringBoot工程 通过Spr…
前言 在实际项目中,经常需要用到邮件通知功能.比如,用户通过邮件注册,通过邮件找回密码等:又比如通过邮件发送系统情况,通过邮件发送报表信息等等,实际应用场景很多.这篇文章,就教大家通过springboot快速的实现一个发送邮件的功能. 开启smtp 这里以QQ邮箱为例.登录QQ邮箱之后,点击设置,点击账户.如下图: 点击开启IMAP/SMTP服务. 记下QQ邮箱提示的授权码: 这个授权码,就是发送邮件时需要的密码. 以上步骤完成之后,就可以开始开发了. 引入依赖 在springboot项目中,引…
Restful简介 Restful一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. 随着Restful风格的流行,现在更多的人叫HTTP接口为Restful接口.所以还是很有必要了解下Restful的一些基础约定的. Rest架构的主要原则 网络上的所有事物都被抽象为资源,使用http方法表示具体操作,如下: 幂等的意思是说,多次相同的请求,数据是保持一致的. res…