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

io.github.xiejx618.replace.Replace Maven / Gradle / Ivy

package io.github.xiejx618.replace;

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

/**
 * 在类或方法上标识为Bean替换. 如果是方法,则必须为非静态公开方法.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Replace {

    /**
     * 需要替换的Bean的beanName.
     * 当在类上使用此注解没指定时, 会从父类名称推断;
     * 当在方法上使用此注解没指定时, 会从方法名推断;
     *
     * @return 返回beanName
     */
    String value() default "";

    /**
     * 替换优先级默认值
     */
    int DEFAULT = Integer.MAX_VALUE;

    /**
     * 如果一个bean被多次扩展时, 就选择排序最小值的类. 值可为负数.
     * 定义排序时, 建议选择现值减去一个小值, 比如现值为DEFAULT-10, 则可定义为DEFAULT-11.
     * 注意:对于bean已被扩展, 定义值不要和现值一样或比现值还大, 这样会导致扩展无法生效;
     * 另外初次扩展定义不应为Integer.MIN_VALUE, 这样会导致后面无法再次扩展.
     *
     * @return 返回排序值
     */
    int order() default DEFAULT;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy