SpringBoot可插拔开箱即用之组件开发

SpringBoot可插拔开箱即用之组件开发_第1张图片

问题

由于适应公司不断发展带来的,售后问题,要求我们要对所有服务进行,主动检查.避免服务异常,造成损失。在这里将该项目的思路及springboot的自动化配置使用分享给大家,希望共同进步。学习。有共同爱好的童鞋,可以点击关注小编,如果看完本文想学习下源码,可以私信我,发送autoconfig关键字获取,地址。


目前的方式是这样:

  • 网关部门定时扫描各个服务,进行监控状态检查,并通知给指定负责人.

实现逻辑:

  • 1. 要求每个线上服务暴露一个/status 地址,并返回指定json,将项目中依赖的数据库连接信息返回

实现要求:

  • 1. 组件式开发

  • 2. 引入即可用,自动监控项目中数据库连接

  • 3. 暴露一个指定的可供网关扫描的地址

技术实现方式:

  • 1. 引入spring-boot-autoconfigure自动配置

  • 2. 引入spring-boot-actuator 使用EndPoint 定制暴露给网关的扫描地址

1. 在autoconfigure中实现定制url的方式是这样的,而不是使用@RequestMapping注解,id就是我们的url,其他属性见注释,非常清楚

SpringBoot可插拔开箱即用之组件开发_第2张图片

2. 加入配置信息,交给合项目负责人维护

SpringBoot可插拔开箱即用之组件开发_第3张图片

3 .导入我们定制的节点

SpringBoot可插拔开箱即用之组件开发_第4张图片

4. 数据库的健康我们按照Spring的套路来

首先定义个接口,然后是抽象模板类,然后是各个数据源的实现类

SpringBoot可插拔开箱即用之组件开发_第5张图片

Mongo检查

SpringBoot可插拔开箱即用之组件开发_第6张图片

消息队列检查

SpringBoot可插拔开箱即用之组件开发_第7张图片

5. 将以上数据检查组件都加入到配置中

注意,要判断,如果服务中没有引入过 Mongodb等数据源,就不要注入,否则强制注入会保存,这里要注意下,这几个注解的意思。这里就不介绍了。

SpringBoot可插拔开箱即用之组件开发_第8张图片

6 . 将这些配置交给autoconfigure 管理,通过服务中的springboot main 启动中@EnableAutoConfiguration 引入,我们组建中的配置。

SpringBoot可插拔开箱即用之组件开发

7 .重点来了,看我们的工具类怎么写的,逻辑就是

从上下文中获取到我们项目中依赖的数据源,首先要判断是否存在,并实现IStatus继承抽象接口中status()方式返回boolean来判断是否数据源连接状态,并返回json给网关,执行EndPoint中的invoke方法返回

SpringBoot可插拔开箱即用之组件开发_第9张图片

SpringBoot可插拔开箱即用之组件开发_第10张图片

8 .使用方法

  • application.yml 中添加

SpringBoot可插拔开箱即用之组件开发_第11张图片

  • 应用启动验证

SpringBoot可插拔开箱即用之组件开发

  • 接口验证

SpringBoot可插拔开箱即用之组件开发_第12张图片

看到这里,基本就介绍完了,是不是很简单,其实没什么难点,spring是契约式开发,没有会不会一说,只有会不会用,看的多了就会了。最后感谢你的阅读!感兴趣的同学可以关注小编,会不断分享实战知识给大家。如果你发现有错误,请提出宝贵意见,会及时改正!谢谢

SpringBoot可插拔开箱即用之组件开发_第13张图片

你可能感兴趣的:(Java,SpringBoot)