【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 {
@Override
public 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 {
@Override
public 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
【Java Web开发学习】Spring4条件化的bean的更多相关文章
- 【Java Web开发学习】Spring4整合thymeleaf视图解析
[Java Web开发学习]Spring4整合thymeleaf视图解析 目录 1.简单介绍2.简单例子 转载:https://www.cnblogs.com/yangchongxing/p/9111 ...
- 【Java Web开发学习】跨域请求
[Java Web开发学习]跨域请求 ================================================= 1.使用jsonp ===================== ...
- 【Java Web开发学习】Spring MVC 使用HTTP信息转换器
[Java Web开发学习]Spring MVC 使用HTTP信息转换器 转载:https://www.cnblogs.com/yangchongxing/p/10186429.html @Respo ...
- 【Java Web开发学习】Spring JPA
[Java Web开发学习]Spring JPA 转载:https://www.cnblogs.com/yangchongxing/p/10082864.html 1.使用容器管理类型的JPA JND ...
- 【Java Web开发学习】Spring MVC添加自定义Servlet、Filter、Listener
[Java Web开发学习]Spring MVC添加自定义Servlet.Filter.Listener 转载:https://www.cnblogs.com/yangchongxing/p/9968 ...
- 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor
[Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...
- 【Java Web开发学习】Spring MVC文件上传
[Java Web开发学习]Spring MVC文件上传 转载:https://www.cnblogs.com/yangchongxing/p/9290489.html 文件上传有两种实现方式,都比较 ...
- 【Java Web开发学习】Servlet、Filter、Listener
[Java Web开发学习]Servlet 转发:https://www.cnblogs.com/yangchongxing/p/9274739.html 1.Servlet package cn.y ...
- 【Java Web开发学习】Spring MVC异常统一处理
[Java Web开发学习]Spring MVC异常统一处理 文采有限,若有错误,欢迎留言指正. 转载:https://www.cnblogs.com/yangchongxing/p/9271900. ...
随机推荐
- Docker解决下载镜像速度慢
Docker安装好以后要用Docker pull命令下载镜像,但是会出现下载很慢的现象.Docker默认是国外的源,配置国内镜像仓库. 1.cd /etc/docker/路径下 2.编辑daemon. ...
- HTML建立超链接
链接是HTML文档的最基本特征之一.超文本链接英文名为hyperlink,它能够让浏览器在各个独立的页面之间方便地跳转.超链接有外部链接.电子邮件链接.锚点链接等. a标签 网页中<a& ...
- wait()、notify、notifyAll()的使用
wait().notify.notifyAll()的使用 参考:https://www.jianshu.com/p/25e243850bd2?appinstall=0 一).java 中对象锁的模型 ...
- 作业要求2018092609-2 选题 Scrum立会报告+燃尽图 01
本组第一次作业 已由组员刘信鹏同学个人博客提交 链接 : [https://www.cnblogs.com/liuxp775/p/11595227.html]
- pycham永久激活及conda环境部署
1.pycham安装 一般不选择最新版本,我用的是2018.3,选择 Professional专业版 1.1 官网地址: https://www.jetbrains.com/pycharm/downl ...
- 虚拟机配置net模式
在cmd中输入ipconfig -all查看 更改网络适配器 进入虚拟机左上角编辑----虚拟机网络编辑器查看VMnet8,虚拟机会为我们分配的固定ip段:如下图: ip段是128---254,所以设 ...
- ansible roles 介绍和使用
目录 roles roles 介绍 创建role的步骤 role内个目录中可用的文件 案例 roles roles 介绍 ansible 自1.2版本引入的新特性,用于层次性.结构化地组织playbo ...
- 1. Python 基础概述 和 环境安装
目录 Python 推荐书籍 开发环境 - Pyenv pyenv 使用 设置Python版本 virtualenv 虚拟环境 pip 通用配置 pip导出和导入 Jupyter 安装和配置 安装 j ...
- centos 6.x 系统基础优化简版
Centos 6.x 系统基础优化 1.更换国内yum源 删除系统带的centos官方yum源 rm -rf /etc/yum.repos.d/* 使用国内阿里云源 curl -o /etc/yum. ...
- 一个http请求的详细过程
一个http请求的详细过程 我们来看当我们在浏览器输入http://www.mycompany.com:8080/mydir/index.html,幕后所发生的一切. 首先http是一个应用层的协议, ...