![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 70
hanxiaozhang2018
当你的才华还撑不起你的野心时,那你就应该静下心来学习!
展开
-
Springboot项目排除Bean的方法
在最近工作中,相关业务代码需要引用一个工具包。原来的同事在工具包中,封装了Spring AOP切面的Bean,但是这样的工具包非常不友好,工具包不应该有这些特殊的处理。有了这些特殊的处理,引用方也要特殊处理。原创 2023-07-24 05:59:13 · 3334 阅读 · 0 评论 -
基于OAuth2.0授权系统的验证码功能
前言:前一阵子,我自己一直在写一套后台管理系统《hanxiaozhang 后台管理系统》,后台技术栈基于SpringCloud组件实现的,授权则是使用的OAuth2.0。为了让系统的功能更加健全,我在系统内添加了验证码功能,具体实现如下:正文:我这套系统授权基于OAuth2.0实现,登录的是http://xxxx/oauth/token获取access_token。调用其他接口时,带上access_token进行权限认证。所以我要想加验证码,需要把验证码值放到http://xxxx/oauth/原创 2021-05-22 14:13:58 · 861 阅读 · 1 评论 -
SpringCloud中的跨域问题
前言:原创 2021-05-01 20:39:22 · 355 阅读 · 0 评论 -
SpringCloud Greenwich版本集成OAuth2.0
OAuth 2.0 是当前授权领域比较流行的标准,它可以为Web应用程序、桌面应用程序、移动设备等提供简单的客户端开发方式。在SpringCloud中提供了SpringCloud Security组件来构建安全的应用程序。SpringCloud Security主要封装了Spring Security、SpringCloud Security OAuth2 等相关实现,这篇文章我们就来介绍一下如何集成OAuth2.0。原创 2021-04-28 21:11:38 · 325 阅读 · 0 评论 -
SpringCloud Sleuth集成Zipkin链路链路追踪工具
前言:在Spring Cloud Sleuth中集成Zipkin非常的简单,只需要引入相应的依赖和做相关的配置即可。 Springboot Admin是Springboot框架下比较优秀的开源监控管理平台,它是基于Springboot自带监控Actuator中的信息,来进行界面化展示,并且还可以提供监控报警、可视化日志、切换日志级别等功能。下面我将分享一下如何在SpringCloud集成Springboot Admin。正文:一、版本信息:SpringCloudGreenwich版...原创 2021-04-17 20:26:21 · 190 阅读 · 0 评论 -
SpringCloud Config 公共配置文件的使用
前言:在SpringCloud中,我们一般会是SpringCloud Config作为配置中心,管理所有服务的配置信息,方便配置信息的管理与维护。但是随着微服务的逐渐增多,你会发现每一个服务都会有相同的配置文件。如果不对它们进行整合,势必会对配置信息的维护带了一定的烦恼。所以,我们这里将介绍一种配置公共文件的方法,具体如下文。正文:这种方法实现起来非常简单,我需要在Config配置中心的目录下,新建common-[profile_name].yml(例如:common-dev.yml),可以在该原创 2020-11-09 21:09:22 · 1330 阅读 · 0 评论 -
SpringCloud Greenwich版本集成Springboot Admin监控和管理平台
前言:Springboot Admin是Springboot框架下比较优秀的开源监控管理平台,它是基于Springboot自带监控Actuator中的信息,来进行界面化展示,并且还可以提供监控报警、可视化日志、切换日志级别等功能。下面我将分享一下如何在SpringCloud集成Springboot Admin。正文:一、版本信息:SpringCloudGreenwich版本、Springboot 2.1.4.RELEASE版本、Springboot Admin 2.1.0版本二、...原创 2020-10-31 20:33:29 · 571 阅读 · 2 评论 -
SpringCloud的异常处理体系--分布式事务Seata(三)
前言:异常处理在前两篇文章已经基本说完了,这篇文章我们来说一说SpringCloud下的事务。众所周知,事务可以在系统出现异常时,保证数据的一致性和完整性。如果没有使用事务,我们的系统数据可能不准确,这样就失去了使用系统的意义。在SpringCloud微服务架构下,我们的服务可能部署在不同的物理服务器上,如果只使用本地事务一定不能保证数据的一致性和完整性,所以我们需要用到分布式事务。我在寻找分布式解决方案时,我优先选择的是代码侵入性小、代码修改量少和使用简单的方案。这样可以减少我们已完成代码的改变。最后原创 2020-10-24 21:42:38 · 605 阅读 · 0 评论 -
SpringCloud的异常处理体系--Fegin调用(二)
前言:在springcloud微服务架构中,服务之间的调用一般通过fegin完成。原创 2020-10-18 20:54:05 · 1032 阅读 · 3 评论 -
SpringCloud的异常处理体系(一)
前言原创 2020-10-02 08:42:13 · 1260 阅读 · 2 评论 -
Zuul网关的请求与响应日志打印、服务回退和异常处理
前言:Zuul是在SpringCloud微服务框架中经常使用网关组件,它提供了认证、鉴权、限流、动态路由、监控、弹性、安全、负载均衡等功能,平时我们在项目中经常Zuul路由、鉴权、监控、负载均衡等功能。我们今天就详细介绍一下请求与响应日志打印、服务回退和异常处理这个三个功能的配置方法。一、请求与响应日志打印:请求与响应日志打印主要是基于Zuul的filter过滤器实现的。Zuul一共有五种类型的filter过滤器,它们分别是:PRE(在请求被路由之前调用)、ROUTING(将请求路由到微服务)、原创 2020-09-26 22:05:31 · 5412 阅读 · 6 评论 -
基于Springboot+Bootstrap的计划提醒解决方案
前言:因工作需要,我们组每天需要有一位同事值班,维护原有系统和解决运营同事使用系统的问题。但是,有时候工作忙起来,会忘记这件事。所以,我想是否可以开发一个计划提醒的管理模块,每天通过邮箱或其他方式提醒我需要做的事情,说做就做,我利用周末的时间写了这块代码,并部署到自己服务器上。具体的思路和代码,下面我会详细介绍。一、思路:计划提醒模块整体思路:在创建计划时,录入提醒标题、内容、计划类型、开始时间、结束时间、提醒时间、提醒周期以及提醒方式等信息到数据库,然后使用定时器去数据库中查询此刻需要提醒的计原创 2020-09-19 16:51:42 · 1088 阅读 · 0 评论 -
Validation校验框架的自定义注解
前言:最近单位在新开发一个系统,我主要负责订单模块的开发,这个模块的数据结构嵌套层数比较多,如果自己写一个校验方法,校验比较麻烦。所以,我选择了Validation校验框架。技术是一把双刃剑,Validation对非空,数据大小,长度这样简单的校验一个注解就可以搞定。但是对一些复杂的校验,明显感觉不是特别友好。Validation也对复杂的校验提供了自定义注解的解决方案,但是,可能还有一些复杂的校验Validation不能实现,这些就需要换另一些方式去实现。正文:一、Validation中的注解原创 2020-08-23 07:32:24 · 3081 阅读 · 2 评论 -
The import org.springframework.test.context.junit4.SpringJUnit4ClassRunner cannot be resolved问题
前言昨天接手了原来同事开发的项目(Springboot项目),做了一些修改,我想做单元测试验证,验证代码正确性。我在使用Idea提示功能引入测试的maven依赖,就出现了The import org.springframework.test.context.junit4.SpringJUnit4ClassRunner cannot be resolved。查找了半天才定位原因,原来是Idea提...原创 2019-04-18 21:51:11 · 516 阅读 · 0 评论 -
bootstrap-table.js支持用户自定义展示表格的列
前言:使用bootstrap-table作为后管系统表格框架时,我们可以通过js中“showColumns ”属性,来控制表格列的多少,但是这里存在一个缺点,一旦刷新界面已经隐藏的列就会恢复原样。经过查阅资料,有如下思路:我们把每一个用户隐藏的列存入数据库,用户每次调用表格时,先查询数据库中存储的记录,解决用户刷新界面隐藏列复原的问题。具体步骤:1.存储隐藏列的表结构设计:...原创 2020-01-27 20:12:45 · 3479 阅读 · 2 评论 -
使用SpringBoot Starter完成发送异常邮件SDK
前言: 前一阵学了SpringBoot发送邮件、SpringBoot制作Starter和自定义业务异常等知识,我突发奇想,我可以制作一个能捕获项目所有异常,通过邮件形式把异常信息发送给开发者的Starter,开发者实现只需要配置相关信息,就可以使用。实现无侵入性编程,支持热拔插使用。正文:具体相关知识点:SpringBoot中Starter知识、SpringBoot驱动配置文件...原创 2019-09-22 10:11:31 · 952 阅读 · 1 评论 -
springboot聚合项目(自己平时的一些总结)
内容(持续更新):0. springboot-utils 常用工具类汇总(bean拷贝,空值不用复制、Excel导入导出工具等)1. springboot-dynamic-datasource AOP多态数据源切换+atomikos分布式事务 201912282. springboot-httpclient httpclient各种使用方法举例3. springboot-red...原创 2020-01-30 15:07:23 · 1563 阅读 · 0 评论 -
业务上第一次使用多个设计模式的组合(策略模式+缺省适配器模式+模板方法模式+简单工厂模式)
前言:从第一次系统地阅读《Java与模式》这本书已经过去一年多了,我一直没有有意的去使用设计模式,原因有两点:一是,对设计模式理解有些点不深入,使用起来比较吃力;二是,没有一个合适场景去使用设计模式。最近,我在负责一个新系统的对接钉钉流程中心,调用相关流程的开发工作,我在之前已经钉钉流程对接2次了,都这块业务理解比较准确和成熟。如果要是搬用原来的代码没有问题,但是原来的写法复用很差,每次新增一个流程,都有把原来的接口复制一遍,然后再对每一个方法中部分代码进行修改。基于以上背景,我觉得应该使用设计模式,对原创 2020-05-16 13:11:07 · 1565 阅读 · 1 评论 -
Spring事务的传播规则以及各种场景下事务的生效情况
前言:从大学学完《Web程序设计》这门课之后,我一直在使用Spring这个框架,它的优点和好处不言而喻。随着时间的推移,我对这个框架的理解也不断加深,自己也有了一些使用的技巧与经验,下面我将分享关于Spring事务中的一些知识,希望对大家的工作、学习、面试有一些帮助。分享的内容主要包括事务何时生效、事务的传播规则和嵌套事务的使用等。如有偏差,请君不吝赐教!一、相关知识点(这里只写文中用到的知识点):1.物理事务与逻辑事务:物理事务:事务性资源实际打开的事务,如数据库的Connection打开原创 2020-05-10 11:37:41 · 1822 阅读 · 1 评论 -
基于Springboot+Bootstrap的文件管理全套解决方案(文件列表、上传、预览、下载、删除、打包下载等)
前言:最近,不知道是不是最后一搏,事业群上层领导要求7天内完成ABS项目中保理系统的一期开发。需求评审会后,我发现各个功能模块都有大量的文件材料展示与上传,为了提高开发效率,我与组长商量,我先开发文件模块,为其他同事提供公共方法,减少重复工作。使用的前端技术栈:Bootstrap、Bootstrap-table、layer.js、layui.js、jquery.media.js设计思路...原创 2020-05-01 20:53:28 · 8157 阅读 · 6 评论 -
业务上第一次遇到MySQL更新锁表超时(Lock wait timeout exceeded try restarting transaction)
前言:最近,我在公司开发某个业务功能,需要使用钉钉审批流,在最后一个结点审批通过后,使用MQ监听回调信息,根据回调信息,更新订单状态、触发系统还款、保存相关审批记录。如果在完美情况下,这一套流程没有任何问题,但是因为历史数据等原因,触发系统还款可能会失败。此时,审批流程已经正常结束了,不可能再走一遍流程。为了解决这样的问题,我们订单状态的“已还款”拆成“审批通过”和“已还款”,这两个结点在完美...原创 2020-04-18 21:32:19 · 1767 阅读 · 0 评论 -
一招教你构建Spring源码,带你开启探究Spring源码之旅
前言:今天是2020年4月4日清明节,也是纪念抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的哀悼日。愿逝者安息,希望新冠肺炎疫情能早点结束,大家生活能恢复正常。构建Spring源码:一、前期准备:1.安装配置Gradle:参考此篇文章:https://www.cnblogs.com/NyanKoSenSei/p/11458953.html验证命令:gradle -v2.下...原创 2020-04-04 20:08:22 · 489 阅读 · 0 评论 -
SpringBoot2.X版本之Mybatis(AbstractRoutingDataSource)多数据源切换+atomikos支持分布式事务
前言:SpringBoot2.X版本的Mybatis多数据源动态切换的配置可以参照我上一篇文章:https://blog.csdn.net/huantai3334/article/details/102758150相关知识介绍:配置:1.引入atomikos的架包: <dependency> <groupId>...原创 2019-12-28 11:59:41 · 901 阅读 · 5 评论 -
Spring线程池与@Async相关知识
一、Spring线程池(TaskExecutor): 大家都知道从JDK5开始引入JUC工具包(java.util .concurrent),JUC中包含了atomic原子类、 Lock锁、Executor框架、Callable与Future、ConcurrentMap等支持多线程高并发的Java类,程序员可以调用此包进行高效的多线程编程。Java线程池的功能就是通过JUC包中E...原创 2020-02-22 18:11:16 · 1356 阅读 · 0 评论