当前位置: 首页 >服务端 > spring @condition 注解

spring @condition 注解

spring @condition注解是用来在不同条件下注入不同实现的

demo如下:

package com.foreveross.service.weixin.test.condition;import org.springframework.context.annotation.Condition;import org.springframework.context.annotation.ConditionContext;import org.springframework.core.type.AnnotatedTypeMetadata;/** *  * windows下的环境 * */public class WindowsCondition implements Condition{@Overridepublic boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {retu context.getEnvironment().getProperty("os.name").contains("Windows");}}
package com.foreveross.service.weixin.test.condition;import org.springframework.context.annotation.Condition;import org.springframework.context.annotation.ConditionContext;import org.springframework.core.type.AnnotatedTypeMetadata;public class LinuxCondition implements Condition{@Overridepublic boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {retu context.getEnvironment().getProperty("os.name").contains("Linux");}}
package com.foreveross.service.weixin.test.condition;public interface ListService {String showListCmd();}
package com.foreveross.service.weixin.test.condition;import org.springframework.stereotype.Service;@Servicepublic class LinuxService implements ListService {public String showListCmd(){retu "ls";}}
package com.foreveross.service.weixin.test.condition;import org.springframework.stereotype.Service;@Servicepublic class WindowsService implements ListService{public String showListCmd(){retu "dir";}}
package com.foreveross.service.weixin.test.condition;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Conditional;import org.springframework.context.annotation.Configuration;@Configurationpublic class MyConfiguration {@Bean(name = "service")@Conditional(WindowsCondition.class)public ListService windowsService() {retu new WindowsService();}@Bean(name = "service")@Conditional(LinuxCondition.class)public ListService linuxEmailerService() {retu new LinuxService();}}
package com.foreveross.service.weixin.test.condition;import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Test {public static void main(String[] args) {AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(MyConfiguration.class);ListService service= context.getBean(ListService.class);System.out.println("操作符为:"+service.showListCmd()+",系统为:"+context.getEnvironment().getProperty("os.name"));context.close();}}

 

作者:全力以赴001
来源链接:https://www.cnblogs.com/huzi007/p/6222289.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/112194.html

标签:Spring注解
分享给朋友:

“spring @condition 注解” 的相关文章

pycharm安装教程,超详细 2022年05月16日 21:28:02
Logback日志框架 2022年05月19日 20:04:05
Python 散列表查询 2022年05月20日 21:28:09
Python 树表查找 2022年05月20日 21:28:27
Python 查找算法 2022年05月20日 21:28:36
学习go语言国内最全资料链接 2022年05月23日 21:27:32
关于设计模式 2022年05月23日 23:02:13