博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring @condition 注解
阅读量:6076 次
发布时间:2019-06-20

本文共 2692 字,大约阅读时间需要 8 分钟。

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{    @Override    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {            return 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{    @Override    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {                return 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(){        return "ls";    }    }
package com.foreveross.service.weixin.test.condition;import org.springframework.stereotype.Service;@Servicepublic class WindowsService implements ListService{    public String showListCmd(){        return "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() {        return new WindowsService();    }    @Bean(name = "service")    @Conditional(LinuxCondition.class)    public ListService linuxEmailerService() {        return 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();    }}

 

转载地址:http://ojxgx.baihongyu.com/

你可能感兴趣的文章
python迭代、列表生成式
查看>>
matlab-可视化图像阈值选择GUI工具
查看>>
python-Input and Output--已阅
查看>>
BUG处理流程图
查看>>
关于VIM的几点设置
查看>>
将博客搬至CSDN
查看>>
Homestead 安装 phpMyAdmin 作为数据库管理客户端 — Laravel 实战 iBrand API 教程
查看>>
Unity C# 设计模式(六)原型模式
查看>>
002、这个提示太难看
查看>>
Linux--sed使用
查看>>
.net的session详解
查看>>
没有显示器的情况下安装和使用树莓派
查看>>
ling查询
查看>>
android 项目学习随笔四(优化ViewPager)
查看>>
20151211jquery ajax进阶代码备份
查看>>
web系统架构
查看>>
MYSQL数据库进阶操作
查看>>
mysql 安装以及卸载 CentOS 6.9
查看>>
3.28随笔
查看>>
socket pro
查看>>