java jar包中能不能有spring bean_每天一个Java知识点(spring-条件注解)

每天分享一个Java知识点,码字不易,喜欢的可以关注一波,共同学习。20191203

今天的知识点是:Spring-条件注解

1. 开篇

昨天,我发过一篇关于profile的知识点。我们可以了解到,通过活动的profile,我们可以获得不同的Bean。Spring4提供了一个更通用的基于条件的Bean的创建,即使用@Conditional注解。

@Conditional根据满足某一个特定条件创建一个特定的Bean。比如说,当某一个jar包在一个类路径下的时候,自动配置一个或多个Bean;或者只有某个Bean被创建才会创建另外一个Bean。总的来说,就是根据特定条件来控制Bean的创建行为,这样我们可以利用这个特性进行一些自动的配置。

在spring Boot中将会大量应用到条件注解,我们将通过实现Condition接口,并重写其matches方法来构造判断条件。若在Windows系统下运行程序,则输出列表命令为dir;若在Linux操作系统下运行程序,则输出列表命令为ls。

2. 代码示例

a. 判断条件的定义:

i. 判定Windows的条件:

4717a36c1a17707edc13f5627613b972.png

WindowsCondiction

ii. 判定Linux的条件:

8e1281126dd3f9cf3b5325cea64eda4d.png

LinuxCondiction

b. 不同系统下Bean

i. 接口:

894cb896c8a973166f34c500c54d3e0c.png

接口

ii. Windows下所要创建的Bean的类:

f4bf667849aeca8977ce5e69d73f7db8.png

WindowsListService

iii. Linux下要创建的Bean的类:

063a76afb09c86268530eb429e409949.png

LinuxListService

c. 配置类:

a3278226daf1fb17fe7e3671ae7f700d.png

配置类

d. 运行:

63097dca03e7191f465244829cd3f651.png

运行

e. 结果:

因为我的电脑系统就是Windows10的,所以结果如下所示:

75f89e79c756312f85af0176cd185f99.png

运行结果

想获取完整面试题及答案的同学请点赞、关注并转发。私信楼主:“Java面试题”获取完整资料,更有超全spring、jvm、linux、docker等电子书相送。更有整理的200多页的面试重点知识点,非常全面,需要的私信。

其它文章:

每天分享一点Java知识(spring-aop)

每天一个Java知识点(spring-多线程)

每天一个Java知识点(spring-aware)

每天一个Java知识点(spring-计划任务)

每天一个Java知识点(spring-event)

每天一个Java知识点(Spring-Profile)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值