2021
01-22
01-22
手撸一个 spring-boot-starter的全过程
我们使用SpringBoot,基本上都是沉醉在它Stater的方便之中。Starter为我们带来了众多的自动化配置,有了这些自动化配置,我们可以不费吹灰之力就能搭建一个生产级开发环境,有的小伙伴会觉得这个Starter好神奇呀!其实Starter也都是Spring+SpringMVC中的基础知识点实现的,接下来带大家自己来撸一个Starter,慢慢揭开Starter的神秘面纱!核心知识其实Starter的核心就是条件注解@Conditional,当classpath下...
继续阅读 >
环境配置:JDK版本:1.8Caffeine版本:2.8.0SpringBoot版本:2.2.2.RELEASE一、本地缓存介绍缓存在日常开发中启动至关重要的作用,由于是存储在内存中,数据的读取速度是非常快的,能大量减少对数据库的访问,减少数据库的压力。之前介绍过Redis这种NoSql作为缓存组件,它能够很好的作为分布式缓存组件提供多个服务间的缓存,但是Redis这种还是需要网络开销,增加时耗。本地缓存是直接从本地内存中读取,没有网络开...
文件上传的功能实现是我们做Web应用时候最为常见的应用场景,比如:实现头像的上传,Excel文件数据的导入等功能,都需要我们先实现文件的上传,然后再做图片的裁剪,excel数据的解析入库等后续操作。今天通过这篇文章,我们就来一起学习一下如何在SpringBoot中实现文件的上传。动手试试第一步:创建一个基础的SpringBoot项目,如果还不会的话就先看看这篇《快速入门》。第二步:在pom.xml中引入模版引擎依赖:<dependency><grou...
要让项目实现ssl免密登录,首先需要开启https。所以先从SpringBoot如何开启https说起。创建服务端证书为了开启https,我们需要一份证书。实际开发中,会在网上申请一个机构颁发的证书。这里为了方便,我会使用openssl命令自己生成一个证书来使用。opensslreq-x509-sha256-days3650-newkeyrsa:4096-keyoutrootCA.key-outrootCA.crt所有的密码都是123456,然后根据提示输入相关信息就好,如果嫌麻烦也可以...
节省95%的内存占用,减少80%的启动耗时。GraalVM是一种高性能的虚拟机,它可以显著的提高程序的性能和运行效率,非常适合微服务。最近比较火的Java框架Quarkus默认支持GraalVM下图为Quarkus和传统框架(SpringBoot)等对比图,更快的启动速度、更小的内存消耗、更短的服务响应。SpringBoot2.4开始逐步提供对GraalVM的支持,旨在提升上文所述的启动、内存、响应的使用体验。安装GraalVM目前官方社区版本最新为20...
1.创建一个表单实体类,将数组封装到实体类中(Post提交)表单类代码:@DatapublicclassMyForm{privateint[]ids;}控制器代码:@Slf4j@RestController@RequestMapping("/info")publicclassInfoController{@PostMapping("/test")publicStringtest(@RequestBodyMyFormform){log.info(Arrays.toString(form.getIds()));return"success";}}前端代码:wx.request({url:'http://localhost:8085/info/tes...
如何快速构建一个SpringBoot的项目工具ideaJDK版本1.8SpringBoot版本1.5.9环境搭建实现:最基础前端可以访问到数据库内的内容开始1.IDEA内部新建一个项目,项目类型选择SpringInitializr,ProjectSDK选择适合你当前环境的版本,这里我选择的是1.8(SpringBoot2.0以上的版本,JDK选择请选择1.8即以上版本),构建服务选择默认就好,点击Next2.填写Group和Artifact(此处我使用的是默认,请根据实际情况填写),项目类型选择...
由于公司是支付平台,所以很多项目都涉及到金额,业务方转递过来的金额是单位是元,而我们数据库保存的金额单位是分。一般金额的流向有以下几个方向:外部业务方请求我们服务,传递过来的金额单位是元,需要把元转换成分。比如:下单接口。内部系统之间的流转,不管是向下传递还是向上传递系统间的流程都是分,不需要扭转。比如:调用支付引擎(向下传递),支付引擎回调收单业务(向上传递)。向业务方返回数据,这个时候需要把...