@Conditional注解
根据条件动态创建bean
public class TestConditon implements Condition {
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        //获取IOC容器使用的BeanFactory
        ConfigurableListableBeanFactory beanFactory=context.getBeanFactory();
        //获取类加载器
        ClassLoader classLoader=context.getClassLoader();
        //获取资源加载器
        ResourceLoader resourceLoader = context.getResourceLoader();
        //获取系统环境
        Environment environment = context.getEnvironment();
        String osName = environment.getProperty("os.name");
        if (osName.contains("Windows")){
            return true;
        }
        return false;
    }
}
是windows系统才创建Bean
@Configuration
public class MainConfig {
@Conditional(TestConditon.class)
@Bean
public Person person(){
return new Person();
}
}
@Conditional注解的更多相关文章
- spring 3.x变通实现@Conditional注解的功能
		
在某些情况下,我们要根据当前的系统配置决定是否初始化一个bean,也就是条件性加载,比如本地缓存或者分布式缓存,亦或是采用http实现或者socket实现.在spring 4.x中,可以使用新增的@C ...
 - Spring中的@conditional注解
		
今天主要从以下几方面来介绍一下@Conditional注解 @Conditional注解是什么 @Conditional注解怎么使用 1,@Conditional注解是什么 @Conditional注 ...
 - Spring Conditional注解使用小结
		
今天我们来总结下Conditional注解的使用. Conditional注解 增加配置类Config package condition; import org.springframework.co ...
 - springboot根据不同的条件创建bean,动态创建bean,@Conditional注解使用
		
这个需求应该也比较常见,在不同的条件下创建不同的bean,具体场景很多,能看到这篇的肯定懂我的意思. 倘若不了解spring4.X新加入的@Conditional注解的话,要实现不同条件创建不同的be ...
 - spring in action学习笔记七:@Conditional注解的用法
		
@Profile注解是@Conditional注解的一个例子.即@Profile也是用@Conditional注解来实现的. 必须让条件实现Condition这个接口. 下面的案例讲如果环境中有mag ...
 - 一文了解@Conditional注解说明和使用
		
 @Conditional:Spring4.0 介绍了一个新的注解@Conditional,它的逻辑语义可以作为"If-then-else-"来对bean的注册起作用. @Con ...
 - Spring @Conditional注解 详细讲解及示例
		
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xcy1193068639/article/details/81491071 前言: @Conditi ...
 - SpringBoot系列之@Conditional注解用法简介
		
SpringBoot系列之@Conditional注解用法简介 引用Spring官方文档的说法介绍一下@Conditional注解:Spring5.0.15版本@Conditional注解官方文档 @ ...
 - SpringBoot(15)—@Conditional注解
		
SpringBoot(15)-@Conditional注解 作用 @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件的才给容器注册Bean. 一.概述 1 ...
 - spring中@Conditional注解
		
@Conditional是Spring4新提供的注解,它的作用是根据某个条件加载特定的bean. 我们需要创建实现类来实现Condition接口,这是Condition的源码 public inter ...
 
随机推荐
- mysql修改数据存储路径报错处理
			
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'解决?: >>> vim ...
 - prop(name|properties|key,value|fn)
			
prop(name|properties|key,value|fn) 概述 获取在匹配的元素集中的第一个元素的属性值.直线电机选型 随着一些内置属性的DOM元素或window对象,如果试图将删除该属性 ...
 - BZOJ 3143: [Hnoi2013]游走 概率与期望+高斯消元
			
Description 一个无向连通图,顶点从1编号到N,边从1编号到M.小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获 ...
 - BZOJ1968: [Ahoi2005]COMMON 约数研究 线性筛
			
按照积性函数的定义筛一下这个积性函数即可. #include <cstdio> #include <algorithm> #define N 1000004 #define s ...
 - hdu  5532    Almost Sorted Array     nlogn 的最长非严格单调子序列
			
Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
 - springboot加载bean过程探索
			
springboot一般通过以下main方法来启动项目 @SpringBootApplication public class DemoApplication { public static void ...
 - JS将后台获取毫秒数转换为自定义格式日期
			
重写prototype Date.prototype.Format = function(fmt) { var o = { "M+" : this.getMonth()+1, / ...
 - Springdata-Jpa学习笔记
			
Respository接口 Respository是Springdata JPA中的顶层接口,提供了两种查询方法: 1)基于方法名称命名规则 2)基于@Qeury注解查询 1. 方法名称命名规则查询 ...
 - xftp上传文件到虚拟机linux失败问题
			
如果想通过xftp上传文件到虚拟机linux时,可能会产生上传失败的问题 原因: 因为有些文件是只可读,所以要修改文件权限,可读可写,才可以上传成功. 解决方法: 第一种方法:用xftp连接虚拟机后, ...
 - LeetCode 130. 被围绕的区域(Surrounded Regions)
			
题目描述 给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 示例: X X X X X O O X X X ...