【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相关推荐

  1. java springmvc https_【Java Web开发学习】Spring MVC 使用HTTP信息转换器

    [Java Web开发学习]Spring MVC 使用HTTP信息转换器 @ResponseBody和@RequestBody是启用消息转换的一种简洁和强大方式 消息转换(message conver ...

  2. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  3. java web开发学习总结

    java web 开发基础内容理解 解决中文乱码问题 请求参数乱码 输出乱码 jsp的运行原理 GET请求和POST请求的区别 静态包含和动态包含 静态包含 动态包含 两者的区别 Cookie和Ses ...

  4. java web开发学习手册_【Java手册】Java开发手册_华山版(2019.06)

    版本号:1.5.0 更新日期:2019.06.19 制定团队:阿里巴巴与Java社区开发者 更新亮点:华山版,新增21条设计规约,修改描述112处,完善若干处示例 2017年春天,<阿里巴巴Ja ...

  5. java web开发学习手册_Java 人必备学习手册开发下载!

    今天给大家分享一套 5000 页的 Java 学习手册,新鲜出炉!此手册内容专注 Java技术,包括 JavaWeb,SSM,Linux,Spring Boot,MyBatis,MySQL,Nginx ...

  6. 【Java Web开发指南】有状态会话Bean(SLSB) 和无状态会话Bean(SFSB)的区别

    有状态会话Bean(SLSB) 和无状态会话Bean(SFSB)的区别 1 无状态 (Stateless) 在不同方法调用间不保留任何状态 . 事务处理必须在一个方法中结束 . 通常资源占用较少:可以 ...

  7. Java Web 开发 从入门到入?

    Java Web 开发 学习记录一 Web 前端基础 标题 这是一个知识点 Java Web 开发 学习记录一 Web 前端基础 前言 一.HTML相关介绍 二.HTML 1.HTML文件的基本结构 ...

  8. java web开发工具有哪些?

    工欲善其事,必先利其器,好的开发工具能让程序猿们的Java web开发学习坐上高铁快车.那么今天小编就先整理一下感觉用来feel 倍爽的开发神器吧! 一.IntelliJ IDEA idea相信很多小 ...

  9. java web开发初学_2018年学习Web开发的绝对初学者指南

    java web开发初学 This post was originally published on Coder-Coder.com. 该帖子最初发布在Coder-Coder.com上 . If yo ...

最新文章

  1. make[1]: g++: Command not found
  2. python--函数
  3. 20155337祁家伟做中学
  4. 实现本机拷贝带进度的方法
  5. 电脑配置java编译报错_java 编译错误
  6. nginx 非socket代理配置
  7. java的remove iterator_Java集合 iterator.remove()方法详解
  8. Cocos2d-x之绘不规则多边形
  9. Oracle数据库 入门教程
  10. java 查看jar包内容_jar文件怎么打开?如何查看jar文件内容?
  11. 《管理的实践》全书结构
  12. 如何配置shopex网店静态化(URL重写)
  13. 【数模智能算法】BP神经网络基本算法原理
  14. 2021年12月中国A股钢铁行业上市企业市值排行榜:行业总市值较11月增长1.18%,金洲管道增幅最大(附月榜TOP44详单)
  15. 表达的方式:评价很让人难受
  16. 7.6-7.13牟尼沟、若尔盖旅游日记
  17. 简单输出的部分代码~
  18. 怎么将几个QQ对话窗口合并和分离
  19. 经济寒冬下更要学技术
  20. NOTA-PEG-Lys/CS/HRP/MMPs大环配体-聚乙二醇-溶菌酶/硫酸软骨素/辣根过氧化氢酶/基质金属蛋白酶

热门文章

  1. 阿里云ECS上LVM磁盘配置
  2. java.io.IOException cannot be resolved
  3. Java记录 -38- 随机数
  4. 设计模式系列--Strategy
  5. Common tasks for MySQL
  6. Java多线程中run和start的区别
  7. sql server 修改IDENTITY 字段 的统计当前值
  8. Android studio 查找文件在电脑路径位置
  9. 【android】窗口管理
  10. select/poll原理(阻塞挂起) 正常(阻塞轮询)