
Spring Boot
Amos zhu
当浮躁的心静不下,不妨写些东西或者看会书
展开
-
动态注册Bean到Spring上下文中——基于FeignClient源码的阅读
在上一篇博文《基于Feign的局部请求拦截》的最后,我提出了如何实现系统启动将自定义注解的bean注入到Spring的ApplicationContext中,那么本博文我们就来探讨下具体的代码流程基于Feign的局部请求拦截小伙伴们在使用SpringCloud中集成的Feign功能时,只需要编写一个接口,然后再给接口上添加注解@FeignClient,然后配置上相关信息既可以调用其他系统的...原创 2020-02-25 17:57:31 · 1382 阅读 · 1 评论 -
基于Feign的局部请求拦截
由于项目的要求,不能对所有基于Feign的进行拦截,需要对不同的Feign请求进行不同的拦截,经过资料的收集整理以及SpringCloud中对于Feign的集成的源码的阅读,解决了针对Feign请求的局部拦截本项目中SpringCloud的版本是Camden.SR6版本背景说明在既有的项目上进行二次开发,服务A需要请求服务B同时需要将服务A中请求的消息头相关信息传送给服务B,但是由于既有...原创 2020-02-21 11:06:07 · 4512 阅读 · 1 评论 -
类以及属性集按照规则过滤——一个简单的构建思路来解决
近期在工作中遇到一个功能需求,基于类以及属性集的数据过滤,功能比较简单,但是的确花费了我一天的工作量来完成该功能,在开发这个功能过程中,我觉的有些问题的思考和处理方式觉得很有帮助,所以整理如下的博文,以便自己以后遇到类似的需求能快速的解决需求如下:需要开发一个功能,能维护系统每个业务单据的数据项,每个业务单据的数据项是可以选择是否展示数据值,然后再系统展示的时候,根据已经维护好的数据项的...原创 2019-10-10 09:32:33 · 622 阅读 · 0 评论 -
策略模式+Spring——让我们的代码更加高大上一点
if…else if…else 代码是实际的项目代码中出现的比例还是蛮高的,特别是针对一些业务需求根据不同类型来进行不同的业务处理,针对这种业务模型,我们来试着使用策略模式结合Spring来优化我们的代码,让代码更加高大上一点为了更好得结合业务来实现代码,先简单的介绍一下具体的业务逻辑模型:目前有一个功能,需要打印表单设置的内容,处理表单固有的属性之外,用户可以维护自定义属性,每个自定义...原创 2019-09-29 11:05:01 · 508 阅读 · 1 评论 -
SpringBoot+Redis+MemCache+Nginx+Lua实现三级缓存架构(二)——Nginx环境安装和整合Lua
前面我们已经简单的介绍过了三级缓存的概念,接下来的博文中,我们需要搭建系统运行的环境、编写功能实现代码来实现我们的三级缓存架构,工欲善其事必先利其器,本片博文我们先来搭建Nginx环境以及整合LuaRedis的环境搭建我们之前的博文 《Redis教程(一)——Redis安装》 已经搭建好了,本文只是实现三级缓存架构,所以Redis这里我们这暂时不做分布式集群,只使用单机版即可,以后如果有需要...原创 2019-08-26 19:50:36 · 289 阅读 · 0 评论 -
缓存与数据库双写一致性的解决方案——附上代码解决方案
传统企业中为了解决高并发大流量的问题,通常使用缓存+数据库的方式来支撑高QPS的访问,虽然能解决读QPS的问题,但是同时也引入了新的问题,例如:缓存与数据库的数据不一致的情况;本博文参考网上相关的博文,详细的整理下缓存数据库数据一致性的问题,并且给出基于Java的代码解决方案关于缓存数据库数据一致性的解决方案,网上有很多,但是大都是偏向理论的,且大多数使用分布式锁来实现的,分布式锁也是一种解...原创 2019-08-19 19:24:19 · 4495 阅读 · 2 评论 -
必备技能——使用线程池来初始化缓冲队列
在我们的业务场景中,经常会遇到一些需要在系统启动时就需要手动缓存一下线程,方便我们去使用已有的线程去处理一些业务,降低系统资源的消耗等,今天我们就来讲解下Java开发必备技能,使用线程池初始化缓冲队列ServletListenerRegistrationBean我们用来演示的项目是基于SpringBoot框架,在框架中我们需要向web容器中注册监听器,可以使用ServletListener...原创 2019-07-16 22:12:04 · 709 阅读 · 1 评论 -
SpringBoot整合RabbitMQ——交换机和队列的管理和绑定
本博文从某个角度来说,应该是rabbitMQ应用开发的知识点梳理,使用目前最广泛流行的SpringBoot来集成rabbitMQ的功能开发,在开发的过程中讲解rabbitMQ的各种特性、技能点以及开发过程中需要注意的地方上一篇博文Centos7下RabbitMQ的搭建我们已经搭建好RabbitMQ的服务器,并且简单的介绍了MQ服务中主要的几个概念,各个概念的主要作用以及为了实现消息的发送和接...原创 2019-06-29 23:54:49 · 9662 阅读 · 0 评论 -
SpringBoot整合RabbitMQ——交换机和队列的管理和绑定
本博文从某个角度来说,应该是rabbitMQ应用开发的知识点梳理,使用目前最广泛流行的SpringBoot来集成rabbitMQ的功能开发,在开发的过程中讲解rabbitMQ的各种特性、技能点以及开发过程中需要注意的地方上一篇博文Centos7下RabbitMQ的搭建我们已经搭建好RabbitMQ的服务器,并且简单的介绍了MQ服务中主要的几个概念,各个概念的主要作用以及为了实现消息的发送和接...原创 2019-07-16 22:09:06 · 1803 阅读 · 0 评论 -
全局代码异常处理封装——让代码逼格更高点
我们开发过程中,不管是通用代码的开发还是业务代码的编写,都涉及到异常的处理,如果不对异常进行封装处理的话,会导致我们的代码十分的不雅观,比较low,所以一个好的全局异常处理的封装不仅仅能加快我们的开发效率,并且也能让我们的代码逼格更高点,何乐而不为呢?首先我们来看下一般情况下代码的处理 /** * 方法定义声明式异常,明确方法调用者需要手动处理异常 * ...原创 2019-07-11 20:27:29 · 477 阅读 · 1 评论 -
SpringBoot整合RabbitMQ——RabbitMQ进阶
title: SpringBoot整合RabbitMQ——RabbitMQ进阶date: 2019-07-06 21:20:35tags:rabbitMQSpringBootcategories:rabbitMQrabbitMQ如何保证如果消息发送失败,保证其消息不丢失、怎么设置消息过期时间以及死信队列是如何在消息消费失败时保证消息不丢失的、如何使用过期时间来实现延迟队列以及...原创 2019-07-06 21:24:56 · 740 阅读 · 0 评论 -
SpringBoot整合RabbitMQ——消息的发送和接收
上篇博文我们整理了RabbitMQ的交换机、队列以及路由绑定等相关知识,并且了解了RabbitMQ是如何发送消息给队列的,以及重要的RoutingKey等重要知识点,这篇博文我们来重点了解下RabbitMQ是如何发送消息,消费消息的,本片博文我们还是以代码为主,简要说明为辅,同时对消息的发送和接收功能进行简单的封装,可以作为一个jar包给第三方进行使用。本博文是在上一篇博文《SpringBo...原创 2019-07-03 21:03:28 · 6911 阅读 · 7 评论