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

com.github.fartherp.framework.common.extension.Activate Maven / Gradle / Ivy

There is a newer version: 3.0.6
Show newest version
/*
 * Copyright (c) 2017. CK. All rights reserved.
 */
package com.github.fartherp.framework.common.extension;

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;

/**
 * Activate
 * 

* 对于可以被框架中自动激活加载扩展,此Annotation用于配置扩展被自动激活加载条件。 * 比如,过滤扩展,有多个实现,使用Activate Annotation的扩展可以根据条件被自动加载。 *

    *
  1. {@link Activate#group()}生效的Group。具体的有哪些Group值由框架SPI给出。 *
  2. {@link Activate#value()}在{@link URL}中Key集合中有,则生效。 *
*

*

* 底层框架SPI提供者通过{@link ExtensionLoader}的{@link ExtensionLoader#getActivateExtension}方法 * 获得条件的扩展。 * * @author CK */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @interface Activate { /** * Group过滤条件。 *
* 包含{@link ExtensionLoader#getActivateExtension}的group参数给的值,则返回扩展。 *
* 如没有Group设置,则不过滤。 */ String[] group() default {}; /** * Key过滤条件。包含{@link ExtensionLoader#getActivateExtension}的URL的参数Key中有,则返回扩展。 *

* 示例:
* 注解的值 @Activate("cache,validatioin"), * 则{@link ExtensionLoader#getActivateExtension}的URL的参数有cacheKey,或是validatioin则返回扩展。 *
* 如没有设置,则不过滤。 */ String[] value() default {}; /** * 排序信息,可以不提供。 */ String[] before() default {}; /** * 排序信息,可以不提供。 */ String[] after() default {}; /** * 排序信息,可以不提供。 */ int order() default 0; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy