001package io.avaje.inject;
002
003import static java.lang.annotation.ElementType.METHOD;
004import static java.lang.annotation.ElementType.TYPE;
005import static java.lang.annotation.RetentionPolicy.RUNTIME;
006
007import java.lang.annotation.Documented;
008import java.lang.annotation.Retention;
009import java.lang.annotation.Target;
010
011/**
012 * The <code>Priority</code> annotation can be applied to classes to indicate the wiring priority of
013 * a bean to resolve cases where multiple beans of the same type exist.
014 *
015 * <p>Beans can be returned using other Priority annotation such as <code>
016 * jakartak.annotation.Priority
017 * </code> or any custom priority annotation that has an <code>int value()</code> attribute.
018 *
019 * @see BeanScope#listByPriority(Type)
020 */
021@Documented
022@Retention(RUNTIME)
023@Target({TYPE, METHOD})
024public @interface Priority {
025  int value();
026}