3.Spring高级话题—4.条件注解@Conditional

1.点睛
在2.4节学到,通过活动的profile,我们可以获得不同的Bean。Spring4提供了一个更通用的基于条件的Bean的创建,即使用@Conditional注解。
@Conditional根据满足某一个特定条件创建一个特定的Bean。比方说,当某一个jar包在一个类路径下的时候,自动配置一个或多个Bean;或者只有某个Bean被创建才会创建另外一个Bean。总的来说,就是根据特定条件来控制Bean的创建行为,这样我们可以利用这个特性进行一些自动的配置。
在Spring Boot中将会大量应用到条件注解,更多内容见6.1节。
下面的示例将以不同的操作系统作为条件,我们将通过实现Condition接口,并重写其matches方法来构造判断条件。若在Windows系统下运行程序,则输出列表命令为dir;若在Linux操作系统下运行程序,则输出列表命令为ls。
2.示例
(1)判断条件定义
①判断Windows的条件
3.Spring高级话题—4.条件注解@Conditional
②判断Linux的条件
3.Spring高级话题—4.条件注解@Conditional
(2)不同系统下Bean的类
①接口
3.Spring高级话题—4.条件注解@Conditional
②Windows下所要创建的Bean的类
3.Spring高级话题—4.条件注解@Conditional
③Linux下所要创建的Bean的类
3.Spring高级话题—4.条件注解@Conditional
(3)配置类
3.Spring高级话题—4.条件注解@Conditional
通过@Conditional注解,符合Windows条件则实例化windowsListService
通过@Conditional注解,符合Linux条件则实例化linuxListService
(4)运行
3.Spring高级话题—4.条件注解@Conditional
结果
3.Spring高级话题—4.条件注解@Conditional

上一篇:《APUE》读书笔记—第十章信号(下)


下一篇:3 weekend110的配置hadoop(格式化) + 一些问题解决 + 未免密码配置