Spring里的条件注解@Conditional

一、简介

平常在开发的时候,我们经常会遇到在满足某些特定条件情况下才去创建某个bean。这个特定条件,可以是某项配置是否配置,某个bean是否存在,某个jar包是否在特定的路径下等等。总之所有这些需要用到条件判断的场景我们都可以使用@Conditional注解来达到自动配置的效果。

如果您阅读过springboot的源码,就会发现springboot里大量使用了这一特性。

下面就以一个示例进行实战,假设我现在需要获取当前系统环境的cpu、内存、磁盘等实时信息,那windows和linux的代码实现是不一样的。

二、代码示例

2.1 先准备一个bean来盛放监控信息

2.2 定义监控信息展示服务类

2.3 系统判断类,重要的是要实现Condition类重写matches方法

2.4 配置不同系统对应的service

2.5 测试类

2.6 运行结果,这个结果是在本机windows系统运行的

MonitorInfo(system=windows, cpu=12%, memory=22%, disk=10G)

2.7 示例代码下载

https://download.csdn.net/download/u013081610/11969519

0

《Spring里的条件注解@Conditional》有2个想法

发表评论

邮箱地址不会被公开。