SpringBoot扩展
文章平均质量分 78
一些基于SpringBoot的扩展
恒奇恒毅
Javaer
展开
-
SpringBoot启动过程:SpringApplication及SpringApplicationBuilder
SpringApplication及SpringApplicationBuilder原创 2022-06-10 18:48:41 · 1491 阅读 · 2 评论 -
外置容器创建及启动ApplicationContext过程
外置容器创建及启动ApplicationContext过程原创 2022-05-19 09:37:08 · 381 阅读 · 0 评论 -
嵌入式Servlet容器自动配置、启动、自定义配置原理
嵌入式Servlet容器自动配置、启动、配置原理原创 2022-05-18 16:36:05 · 499 阅读 · 0 评论 -
ConfigurationProperties和EnableConfigurationProperties
ConfigurationProperties、EnableConfigurationProperties原创 2022-05-16 18:39:15 · 1740 阅读 · 0 评论 -
使用CORS解决跨域问题
后端接口和前端分离的时候,很多情况下会遇到跨域问题。这是浏览器的同源策略导致的,同源策略是为了Web安全提出的,说的是两个不同源的网址默认是不能请求对方的接口的。不同源包含:协议(http|https)、ip/域名、端口之一不同就是不同源。不同源的网页请求接口都要遵循浏览器的同源策略。 解决跨域问题有两种方案,都需要服务端支持才可以。 一种是JSON...原创 2020-02-21 17:58:25 · 3277 阅读 · 0 评论 -
切面定义可配置化及重复注解
项目https://gitee.com/xxssyyyyssxx/validation在这两个方面进行了探讨。1.切面自定义一般地,切面都是这样定义的,由于@Pointcut无法通过${}注入,所以这个类很难框架化,都需要在业务方法中写,比较麻烦,下面记录一种可以配置此值的方式。@Aspect@Componentclass ParamValidateAspect implemen...原创 2020-02-10 21:08:54 · 685 阅读 · 0 评论 -
如何优雅地保证程序不退出?
首先提两个问题:springboot应用程序只在main方法中调用SpringApplication.run(xx),程序就运行起来了,他为什么能保持住不退出? quartz程序为什么能一直运行不退出?我们为了让程序保持不退出,一般使用Thread.sleep方法,或者使用一个while无限循环,但是总感觉不太优雅。参考springboot和tomcat的源码写了一个小工具,可以优雅地实现...原创 2019-11-01 09:39:55 · 1487 阅读 · 0 评论 -
SpringBoot中接口加密解密统一处理
项目参见https://gitee.com/xxssyyyyssxx/affect-inoutput我们与客户端的接口交互中,为了更高的安全性,我们可能需要对接口加密(请求参数加密,服务端解密)、返回信息加密(服务端加密,客户端解密),但是也不是所有的接口都这样,有些接口可能不需要,我们可以使用注解来轻松达到此要求。将接口参数的加密解密和返回信息的加密解密分开,分别定义注解,利用C...原创 2019-07-27 19:49:38 · 44290 阅读 · 18 评论 -
接口日志统一处理
我们项目中可能有这种需求,每个人请求了哪些接口?做了什么事情?参数是什么?重要的接口我们需要记日志以便查找。我们不可能在每个接口中去一一处理,可以借助Spring提供的AOP能力+自定义注解轻松应对。首先我们定义用于Controller方法的注解,使用了此注解的就记录日志。/** * 添加了此注解就记录日志 * @author xiongshiyan at 2018/11/2 , c...原创 2019-07-27 19:49:47 · 7746 阅读 · 6 评论 -
集群机器循环调用实现,基于SpringBoot
以下的内容纯属理论探讨,除非万不得已最好不要这么干,因为会造成集群的有状态化和维护困难。假设一个集群中有三台tomcat,在发生某件事情(比如接口调用)的时候我需要首先在本机做某件事情,如果做不了,就调用下一台机器,如此往复,直到最后一台。我们可以将tomcat定义成为一个环,每台保存自己的标识和下一台的标识,调用的时候带上已经经过的节点,如果下一个节点已经在已经经过的节点中,说明就是最后...原创 2018-11-05 10:30:22 · 452 阅读 · 0 评论 -
基于token的登录管理(多设备登录、单设备登录)
不管是客户端接口还是网页H5接口,一般我们都需要登录验证,即要求所有的接口访问都必须在登录之后,以确认身份,防止非法调用。一般的流程都是登录的时候返回一个代表此登录的token,以后所有接口都带上此token,在所有接口调用之前拦截验证,一般都是通过AOP或者一个Filter、拦截器来实现。而退出的时候调用接口将此token删除即可。一般地,为了对接口侵入最小,能做到统一处理,可以将此token放...原创 2019-07-27 19:49:28 · 28298 阅读 · 5 评论 -
SpringBoot使用WebSocket实现服务端推送--集群实现(2)
书接上文,本文介绍了一种实现集群管理和消息传送方式。在集群模式情况下,一般是Nginx反向代理到多台Tomcat或者SLB代理到多台Tomcat的方式,怎么实现给某个人推送消息?比如WebSocket1连接到Tomcat1,但是在Tomcat2需要给WebSocket1发送消息,怎么办?一般的想法是像httpsession的集群处理方式一样,利用一个中间件Redis来保存session即可。但...原创 2019-07-27 19:50:19 · 5244 阅读 · 1 评论 -
SpringBoot使用WebSocket实现服务端推送---单机实现(1)
[![star](https://gitee.com/xxssyyyyssxx/websocket-springboot-starter/badge/star.svg?theme=dark)](https://gitee.com/xxssyyyyssxx/websocket-springboot-starter/stargazers)最近开发中需要实现服务端的推送,经过一段时间的资料查询最终锁...原创 2018-10-14 15:07:47 · 1233 阅读 · 0 评论 -
密码错误次数管理和图形验证码管理接口和实现
在开发中,登录接口一般会校验密码,当密码错误次数达到一定次数(阀值)就激活图形验证码校验,此举的目的主要是为了防止暴力破解密码。基于此,我抽取了密码次数管理接口和验证码校验。错误次数管理器:/** * @author xiongshiyan * 密码错误管理器 * 可以使用Reids实现,可以使用db实现 */public interface ErrorCountManage...原创 2018-10-08 15:29:02 · 1566 阅读 · 0 评论 -
Springboot环境下微信开发的入口框架
感谢@JFinal提供的JFinal-weixin项目,使用到了里面的微信入口消息和出口消息及工具类。https://gitee.com/jfinal/jfinal-weixinjfianl-weixin项目非常适合于在Jfinal环境下开发微信消息处理,只需要继承MsgController基类复写相关方法即可。那么在Spring环境下如何处理呢?见gitee上项目:https://g...原创 2018-09-06 11:37:46 · 1496 阅读 · 0 评论 -
记录定时任务迁移xxl-job的过程和理解
一般定时任务使用的是基于quartz或者spring-scheduler的,能够满足大部分的开发需求。但是像手动执行一次,执行情况监测,进程阻塞停止等维护需求就显得无能为力了。无意间在gitee.com上发现了一个很好满足以上需求的项目,来自许雪里开源的一个轻量级分布式任务调度平台xxl-job。gitee地址:https://gitee.com/xuxueli0323/xxl-...原创 2019-10-08 16:14:19 · 3318 阅读 · 0 评论