Over a million developers have joined DZone.

Turn a Java annotation into a CDI qualifier

· Java Zone

Easily build powerful user management, authentication, and authorization into your web and mobile applications. Download this Forrester report on the new landscape of Customer Identity and Access Management, brought to you in partnership with Stormpath.

A CDI qualifier is an annotation that itself is annotated with the @javax.inject.Qualifier meta-annotation. Per example, if you add the @Qualifier to the MyAnnotation (http://e-blog-java.blogspot.com/2011/04/what-is-java-annotation.html) you obtain a CDI qualifier:

@Qualifier
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation
{
// Property Definitions here.
}

CDI provide a set of built-in qualifiers:

Qualifier                         
 
 
Description
 
@javax.enterprise.inject.Named 
 
This qualifier is used to un-typed access from
non-Java code. Commonly this qualifier serves the
JSF pages that access beans through EL.
 
@javax.enterprise.inject.New 
 
This qualifier forces the creation of a new
instance, instead of using the contextual
instance. It allows us to obtain a dependent
object of a specified class.
 

@javax.enterprise.inject.Any
 
This qualifier “belongs” to all beans and 
injection points (not applicable when @New is
present). This is useful if you want to iterate
over all beans with a certain bean type.
 
@javax.enterprise.inject.Default
 
As the qualifier name suggests, whenever a bean
or injection point does not explicitly declare a
qualifier, the container assumes the qualifier
@Default.

 

From http://e-blog-java.blogspot.com/2011/04/turn-java-annotation-into-cdi-qualifier.html

The Java Zone is brought to you by Stormpath—offering a complete, pre-built User Management API for building web and mobile applications, and APIs. Download our new whitepaper: "Build Versus Buy: Customer Identity Management for Web and Mobile Applications".

Topics:

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}