All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.wudaosoft.weixinsdk.condition.ConditionalOnMyBean Maven / Gradle / Ivy

There is a newer version: 3.0.3
Show newest version
/**
 *    Copyright 2009-2018 Wudao Software Studio(wudaosoft.com)
 * 
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 * 
 *        http://www.apache.org/licenses/LICENSE-2.0
 * 
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
package com.wudaosoft.weixinsdk.condition;

import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Conditional;

/** 
 * @author Changsoul Wu
 * 
 */
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Conditional(OnMyBeanCondition.class)
public @interface ConditionalOnMyBean {
	/**
	 * The class type of bean that should be checked. The condition matches when any of
	 * the classes specified is contained in the {@link ApplicationContext}.
	 * @return the class types of beans to check
	 */
	Class[] value() default {};

	/**
	 * The class type names of bean that should be checked. The condition matches when any
	 * of the classes specified is contained in the {@link ApplicationContext}.
	 * @return the class type names of beans to check
	 */
	String[] type() default {};

	/**
	 * The annotation type decorating a bean that should be checked. The condition matches
	 * when any of the annotations specified is defined on a bean in the
	 * {@link ApplicationContext}.
	 * @return the class-level annotation types to check
	 */
	Class[] annotation() default {};

	/**
	 * The names of beans to check. The condition matches when any of the bean names
	 * specified is contained in the {@link ApplicationContext}.
	 * @return the name of beans to check
	 */
	String[] name() default {};

	/**
	 * Strategy to decide if the application context hierarchy (parent contexts) should be
	 * considered.
	 * @return the search strategy
	 */
	SearchStrategy search() default SearchStrategy.ALL;

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy