com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig Maven / Gradle / Ivy
The newest version!
package com.ctrip.framework.apollo.spring.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.annotation.Import;
import org.springframework.core.Ordered;
import com.ctrip.framework.apollo.core.ConfigConsts;
/**
* Use this annotation to register Apollo property sources when using Java Config.
*
* Configuration example:
*
* @Configuration
* @EnableApolloConfig({"someNamespace","anotherNamespace"})
* public class AppConfig {
*
* }
*
*
* @author Jason Song([email protected])
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(ApolloConfigRegistrar.class)
public @interface EnableApolloConfig {
/**
* Apollo namespaces to inject configuration into Spring Property Sources.
*/
String[] value() default {ConfigConsts.NAMESPACE_APPLICATION};
/**
* The order of the apollo config, default is {@link Ordered#LOWEST_PRECEDENCE}, which is Integer.MAX_VALUE.
* If there are properties with the same name in different apollo configs, the apollo config with smaller order wins.
* @return
*/
int order() default Ordered.LOWEST_PRECEDENCE;
}