【Java Web开发学习】Spring4条件化的bean
【Java Web开发学习】Spring4条件化的bean
转载:https://www.cnblogs.com/yangchongxing/p/9071960.html
Spring4引入了@Conditional注解,可以用到带有@Bean注解的地方,若给定的条件计算为true则创建bean,否则bean被忽略
用法:@Conditional(PlayerCondition.class),设置为@Conditional注解的类必须是任意实现了org.springframework.context.annotation.Condition接口的类。该接口只有一个方法
public boolean matches(ConditionContext context, AnnotatedTypeMetadata matadata) {},返回boolean
package cn.ycx.web.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration;import cn.ycx.web.model.Painter; import cn.ycx.web.model.PainterCondition; import cn.ycx.web.model.Player; import cn.ycx.web.model.PlayerCondition; @Configuration public class TestConfig {@Bean@Conditional(PlayerCondition.class)public Player player() {return new Player();}@Bean@Conditional(PainterCondition.class)public Painter painter() {return new Painter();} }
package cn.ycx.web.model;import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.env.Environment; import org.springframework.core.type.AnnotatedTypeMetadata;public class PlayerCondition implements Condition {@Overridepublic boolean matches(ConditionContext context, AnnotatedTypeMetadata matadata) {Environment env = context.getEnvironment();return env.containsProperty("CONDITION_PALY");} }
package cn.ycx.web.model;import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.env.Environment; import org.springframework.core.type.AnnotatedTypeMetadata;public class PainterCondition implements Condition {@Overridepublic boolean matches(ConditionContext context, AnnotatedTypeMetadata matadata) {Environment env = context.getEnvironment();return env.containsProperty("CONDITION_PAINT");} }
环境变量包含CONDITION_PALY就创建PlayerCondition
环境变量设置:
windows系统
spring.CONDITION_PALY=play
ubuntu系统
当前用户
$ vim ~/.bashrc 追加 export CONDITION_PALY=play $ source ~/.bashrc
所有用户
# vim /etc/profile 追加 export CONDITION_PALY=play # source /etc/profile
转载于:https://www.cnblogs.com/yangchongxing/p/9071960.html
【Java Web开发学习】Spring4条件化的bean相关推荐
- java springmvc https_【Java Web开发学习】Spring MVC 使用HTTP信息转换器
[Java Web开发学习]Spring MVC 使用HTTP信息转换器 @ResponseBody和@RequestBody是启用消息转换的一种简洁和强大方式 消息转换(message conver ...
- 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor
[Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...
- java web开发学习总结
java web 开发基础内容理解 解决中文乱码问题 请求参数乱码 输出乱码 jsp的运行原理 GET请求和POST请求的区别 静态包含和动态包含 静态包含 动态包含 两者的区别 Cookie和Ses ...
- java web开发学习手册_【Java手册】Java开发手册_华山版(2019.06)
版本号:1.5.0 更新日期:2019.06.19 制定团队:阿里巴巴与Java社区开发者 更新亮点:华山版,新增21条设计规约,修改描述112处,完善若干处示例 2017年春天,<阿里巴巴Ja ...
- java web开发学习手册_Java 人必备学习手册开发下载!
今天给大家分享一套 5000 页的 Java 学习手册,新鲜出炉!此手册内容专注 Java技术,包括 JavaWeb,SSM,Linux,Spring Boot,MyBatis,MySQL,Nginx ...
- 【Java Web开发指南】有状态会话Bean(SLSB) 和无状态会话Bean(SFSB)的区别
有状态会话Bean(SLSB) 和无状态会话Bean(SFSB)的区别 1 无状态 (Stateless) 在不同方法调用间不保留任何状态 . 事务处理必须在一个方法中结束 . 通常资源占用较少:可以 ...
- Java Web 开发 从入门到入?
Java Web 开发 学习记录一 Web 前端基础 标题 这是一个知识点 Java Web 开发 学习记录一 Web 前端基础 前言 一.HTML相关介绍 二.HTML 1.HTML文件的基本结构 ...
- java web开发工具有哪些?
工欲善其事,必先利其器,好的开发工具能让程序猿们的Java web开发学习坐上高铁快车.那么今天小编就先整理一下感觉用来feel 倍爽的开发神器吧! 一.IntelliJ IDEA idea相信很多小 ...
- java web开发初学_2018年学习Web开发的绝对初学者指南
java web开发初学 This post was originally published on Coder-Coder.com. 该帖子最初发布在Coder-Coder.com上 . If yo ...
最新文章
- make[1]: g++: Command not found
- python--函数
- 20155337祁家伟做中学
- 实现本机拷贝带进度的方法
- 电脑配置java编译报错_java 编译错误
- nginx 非socket代理配置
- java的remove iterator_Java集合 iterator.remove()方法详解
- Cocos2d-x之绘不规则多边形
- Oracle数据库 入门教程
- java 查看jar包内容_jar文件怎么打开?如何查看jar文件内容?
- 《管理的实践》全书结构
- 如何配置shopex网店静态化(URL重写)
- 【数模智能算法】BP神经网络基本算法原理
- 2021年12月中国A股钢铁行业上市企业市值排行榜:行业总市值较11月增长1.18%,金洲管道增幅最大(附月榜TOP44详单)
- 表达的方式:评价很让人难受
- 7.6-7.13牟尼沟、若尔盖旅游日记
- 简单输出的部分代码~
- 怎么将几个QQ对话窗口合并和分离
- 经济寒冬下更要学技术
- NOTA-PEG-Lys/CS/HRP/MMPs大环配体-聚乙二醇-溶菌酶/硫酸软骨素/辣根过氧化氢酶/基质金属蛋白酶