Clarify Javadoc of ConditionalOn annotations

Closes gh-14681
pull/14583/merge
Roland Weisleder 6 years ago committed by Stephane Nicoll
parent b4c5aea152
commit d2a063b26a

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2017 the original author or authors. * Copyright 2012-2018 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -24,13 +24,14 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Conditional;
/** /**
* {@link Conditional} that only matches when the specified bean classes and/or names are * {@link Conditional} that only matches when beans of the specified classes and/or with
* already contained in the {@link BeanFactory}. When placed on a {@code @Bean} method, * the specified names are already contained in the {@link BeanFactory}.
* the bean class defaults to the return type of the factory method: * <p>
* When placed on a {@code @Bean} method, the bean class defaults to the return type of
* the factory method:
* *
* <pre class="code"> * <pre class="code">
* &#064;Configuration * &#064;Configuration
@ -61,15 +62,15 @@ import org.springframework.context.annotation.Conditional;
public @interface ConditionalOnBean { public @interface ConditionalOnBean {
/** /**
* The class type of bean that should be checked. The condition matches when all of * The class types of beans that should be checked. The condition matches when beans
* the classes specified are contained in the {@link ApplicationContext}. * of all classes specified are contained in the {@link BeanFactory}.
* @return the class types of beans to check * @return the class types of beans to check
*/ */
Class<?>[] value() default {}; Class<?>[] value() default {};
/** /**
* The class type names of bean that should be checked. The condition matches when all * The class type names of beans that should be checked. The condition matches when
* of the classes specified are contained in the {@link ApplicationContext}. * beans of all classes specified are contained in the {@link BeanFactory}.
* @return the class type names of beans to check * @return the class type names of beans to check
*/ */
String[] type() default {}; String[] type() default {};
@ -77,15 +78,15 @@ public @interface ConditionalOnBean {
/** /**
* The annotation type decorating a bean that should be checked. The condition matches * The annotation type decorating a bean that should be checked. The condition matches
* when all of the annotations specified are defined on beans in the * when all of the annotations specified are defined on beans in the
* {@link ApplicationContext}. * {@link BeanFactory}.
* @return the class-level annotation types to check * @return the class-level annotation types to check
*/ */
Class<? extends Annotation>[] annotation() default {}; Class<? extends Annotation>[] annotation() default {};
/** /**
* The names of beans to check. The condition matches when all of the bean names * The names of beans to check. The condition matches when all of the bean names
* specified are contained in the {@link ApplicationContext}. * specified are contained in the {@link BeanFactory}.
* @return the name of beans to check * @return the names of beans to check
*/ */
String[] name() default {}; String[] name() default {};

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2017 the original author or authors. * Copyright 2012-2018 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -24,12 +24,11 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Conditional;
/** /**
* {@link Conditional} that only matches when the specified bean classes and/or names are * {@link Conditional} that only matches when no beans of the specified classes and/or
* not already contained in the {@link BeanFactory}. * with the specified names are already contained in the {@link BeanFactory}.
* <p> * <p>
* When placed on a {@code @Bean} method, the bean class defaults to the return type of * When placed on a {@code @Bean} method, the bean class defaults to the return type of
* the factory method: * the factory method:
@ -64,21 +63,21 @@ import org.springframework.context.annotation.Conditional;
public @interface ConditionalOnMissingBean { public @interface ConditionalOnMissingBean {
/** /**
* The class type of bean that should be checked. The condition matches when each * The class types of beans that should be checked. The condition matches when no bean
* class specified is missing in the {@link ApplicationContext}. * of each class specified is contained in the {@link BeanFactory}.
* @return the class types of beans to check * @return the class types of beans to check
*/ */
Class<?>[] value() default {}; Class<?>[] value() default {};
/** /**
* The class type names of bean that should be checked. The condition matches when * The class type names of beans that should be checked. The condition matches when no
* each class specified is missing in the {@link ApplicationContext}. * bean of each class specified is contained in the {@link BeanFactory}.
* @return the class type names of beans to check * @return the class type names of beans to check
*/ */
String[] type() default {}; String[] type() default {};
/** /**
* The class type of beans that should be ignored when identifying matching beans. * The class types of beans that should be ignored when identifying matching beans.
* @return the class types of beans to ignore * @return the class types of beans to ignore
* @since 1.2.5 * @since 1.2.5
*/ */
@ -95,15 +94,15 @@ public @interface ConditionalOnMissingBean {
/** /**
* The annotation type decorating a bean that should be checked. The condition matches * The annotation type decorating a bean that should be checked. The condition matches
* when each annotation specified is missing from all beans in the * when each annotation specified is missing from all beans in the
* {@link ApplicationContext}. * {@link BeanFactory}.
* @return the class-level annotation types to check * @return the class-level annotation types to check
*/ */
Class<? extends Annotation>[] annotation() default {}; Class<? extends Annotation>[] annotation() default {};
/** /**
* The names of beans to check. The condition matches when each bean name specified is * The names of beans to check. The condition matches when each bean name specified is
* missing in the {@link ApplicationContext}. * missing in the {@link BeanFactory}.
* @return the name of beans to check * @return the names of beans to check
*/ */
String[] name() default {}; String[] name() default {};

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2017 the original author or authors. * Copyright 2012-2018 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -23,11 +23,10 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Conditional;
/** /**
* {@link Conditional} that only matches when the specified bean class is already * {@link Conditional} that only matches when a bean of the specified class is already
* contained in the {@link BeanFactory} and a single candidate can be determined. * contained in the {@link BeanFactory} and a single candidate can be determined.
* <p> * <p>
* The condition will also match if multiple matching bean instances are already contained * The condition will also match if multiple matching bean instances are already contained
@ -49,8 +48,8 @@ import org.springframework.context.annotation.Conditional;
public @interface ConditionalOnSingleCandidate { public @interface ConditionalOnSingleCandidate {
/** /**
* The class type of bean that should be checked. The condition match if the class * The class type of bean that should be checked. The condition matches if a bean of
* specified is contained in the {@link ApplicationContext} and a primary candidate * the class specified is contained in the {@link BeanFactory} and a primary candidate
* exists in case of multiple instances. * exists in case of multiple instances.
* <p> * <p>
* This attribute may <strong>not</strong> be used in conjunction with * This attribute may <strong>not</strong> be used in conjunction with
@ -60,8 +59,8 @@ public @interface ConditionalOnSingleCandidate {
Class<?> value() default Object.class; Class<?> value() default Object.class;
/** /**
* The class type name of bean that should be checked. The condition matches if the * The class type name of bean that should be checked. The condition matches if a bean
* class specified is contained in the {@link ApplicationContext} and a primary * of the class specified is contained in the {@link BeanFactory} and a primary
* candidate exists in case of multiple instances. * candidate exists in case of multiple instances.
* <p> * <p>
* This attribute may <strong>not</strong> be used in conjunction with * This attribute may <strong>not</strong> be used in conjunction with

Loading…
Cancel
Save