Spring-Condition设置
来源:互联网 发布:网络男歌手好听的歌 编辑:程序博客网 时间:2024/06/05 14:12
为了满足不同条件下生成更为合适的bean,可以使用condition配置其条件。假如有一个bean,id为magicBean,只有当其具有magic属性时才生成,方法如下:
javaConfig模式:只需要在声明bean的地方加上@Conditional即可
1 package com.myapp; 2 3 import org.springframework.context.annotation.Bean; 4 import org.springframework.context.annotation.Conditional; 5 6 public class MagicBean { 7 @Bean//显式声明一个bean,id默认为方法名 8 @Conditional(MagicExistsConditional.class)//生成bean的条件判断,参数类型为class,接受返回的布尔值,为true则生成bean否则不生成 9 public MagicBean magicBean(){10 return new MagicBean();11 }12 }
其参数(MagicExistsConditional.class)是如何编写呢?
1 package com.myapp; 2 3 import org.springframework.context.annotation.Condition; 4 import org.springframework.context.annotation.ConditionContext; 5 import org.springframework.core.env.Environment; 6 import org.springframework.core.type.AnnotatedTypeMetadata; 7 8 public class MagicExistsConditional implements Condition{ 9 10 @Override11 public boolean matches(ConditionContext arg0, AnnotatedTypeMetadata arg1) {12 // TODO Auto-generated method stub13 Environment env=arg0.getEnvironment();//获取上下文环境14 return env.containsProperty("magic");//检查是否包含magic属性15 }16 17 }
这里只是通过ConditionContext类型的arg0得到Environment类型的env,通过env调用方法判断是否存在magic属性。
而ConditionContext和AnnotatedTypeMetadata都是接口,里面定义了许多方法,详见《Spring实战(第4版)》P75-P78。
0 0
- Spring-Condition设置
- spring-Condition条件化配置
- 【Spring】Spring高级话题-条件注解-@Condition
- Condition
- Condition
- Condition
- Condition
- Condition
- Condition
- Condition
- Condition
- Condition
- spring缓存注解的condition属性
- Spring学习之缓存机制EhCache---Condition
- spring缓存机制-根据condition加入缓存(三)
- spring @Condition 多注解之间执行逻辑与还是或
- vs2008与vs2010设置条件断点(Condition Breakpoint)
- 设置SourceInsight的condition解决代码语法解析错误的问题
- Spring-装配Bean
- 线性表的定义与操作-链式表
- Spring-导入和混合配置
- Spring-profile设置
- javascript的设计模式
- Spring-Condition设置
- C# NPOI修改xlsx表格
- Spring-处理自动装配的歧义性
- Spring-bean的作用域
- windows环境下mongodb下载、安装和使用总结
- ActiveMQ笔记(1):编译、安装、示例代码
- Spring-注入外部值
- SQL-字符串连接聚合函数
- Spring-AOP