Spring中条件化的Bean

原创 2018年04月16日 17:38:42

        @Conditional注解可以用到带有@Bean注解的方法上.如果给定的条件计算结果为true,才会创建这个Bean.

        例子如下:

package main.java.Demo1;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

/**
 * @author myvina@qq.com
 * @date 18-4-16 下午5:30
 */

public class CDPlayerExists implements Condition {
    @Override
    public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
        return false;
    }
}
package main.java.Demo1;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

/**
 * @author myvina@qq.com
 * @date 18-4-16 上午8:53
 */

@Configuration
public class CompactDiskConfig2 {
    @Bean
    public CompactDisc beatlesCD(){
        return new BeatlesCD();
    }

    @Bean
    @Conditional(CDPlayerExists.class)
    public CDPlayer cdPlayer(){
        return new CDPlayer(beatlesCD());
    }
}
        设置给@Conditional的类可以是任意实现了Condition接口的类型.要实现这个接口,只需实现matches()方法,若此方法返回true,则创建这个Bean.

Spring 条件注解(@Conditional)

通过活动的profile,我们可以获得不同的Bean。Spring 4提供了一个更通用的基于条件的Bean的创建方式,即使用@Conditional注解。 @Conditional根据满足某个特定的...
  • xiaolyuh123
  • xiaolyuh123
  • 2017-03-20 14:26:29
  • 4782

Spring In Action-3.2@Conditional条件化Bean

  • 2017年09月05日 22:33
  • 13.6MB
  • 下载

Spring 创建条件化的bean(满足一定条件才会实例化该bean)

Spring 创建条件化的bean(满足一定条件才会实例化该bean) 应用场景: 要求在特定的环境变量下创建该bean 希望某个bean被声明时候才会创建该bean 希望一个或者多个bean只有在...
  • Suubyy
  • Suubyy
  • 2017-09-05 23:11:05
  • 390

Spring高级装配--条件化的bean

条件化的bean 假设你希望一个或多个bean只有在应用的类路径下包含特定的库时才创建。或者我们希望某个bean只有当另外某个特定的bean也声明之后才会创建。我们还可能要求只有某个特定的环境变量设...
  • chengyunyi123
  • chengyunyi123
  • 2017-02-09 11:57:03
  • 837

Spring 条件化Bean @Conditional

在Spring的IOC环境下,如果你希望bean在符合某种条件下才创建,如: 类路径下包含特定的库时创建,某个特定的bean声明了之后创建,或者是特定的环境变量设置的情况下创建。        为了...
  • u011350831
  • u011350831
  • 2017-08-08 16:31:30
  • 282

spring-Condition条件化配置

spring4.0引入的新特性,当你注册bean时,可以对这个bean添加一定的自定义条件,当满足这个条件时,注册这个bean,否则不注册。 条件化最重要的是Condition接口,如下定义...
  • helianus
  • helianus
  • 2017-12-08 17:15:17
  • 105

Spring 全注解配置 bean 和 调用 (3) @Conditonal 条件化的配置bean

package com.xiuye.config; import org.springframework.beans.factory.config.ConfigurableBeanFactory; ...
  • xiuye2015
  • xiuye2015
  • 2016-11-12 12:31:57
  • 1371

spring实战-条件装配bean

在做大型项目时,我们的系统会有多个运行环境,如开发人员自己的本地环境dev,测试人员的测试环境sit,上线前的预生产环境pre,线上环境prd 在不同环境中我们可能需要不同的配置,如数据库配置,MQ配...
  • tidu2chengfo
  • tidu2chengfo
  • 2017-08-10 21:55:31
  • 390

十三、条件化的bean

条件化的bean当你希望一个或者多个bean只有在应用的的类路径下包含特殊的库才创建。或者希望一个bean只有在只有在某个特定的bean也申明了之后才会创建。在spring4 这很难实现,在Sprin...
  • L_Sail
  • L_Sail
  • 2017-05-01 23:18:04
  • 185

3、条件加载Bean——@Conditional

一、当用getBeansOfType从IOC容器中获取某种类型的bean时,若IOC容器中同时存在多于一个,则会把所有满足条件的bean都找出来。如下实例:创建一个接口EncodingConvert,...
  • u010502101
  • u010502101
  • 2017-12-03 22:34:01
  • 371
收藏助手
不良信息举报
您举报文章:Spring中条件化的Bean
举报原因:
原因补充:

(最多只允许输入30个字)