Annotation

Eine Annotation in Java ist ein Marker mit @, der vom Compiler oder Container ausgewertet wird.

In Jakarta EE = "Vertrag mit dem Container": "behandle das als X".

I. Beispiele


@Stateless           // Bean-Typ
@Entity              // JPA-managed
@WebServlet("/x")    // URL-Mapping
@EJB                 // Inject
@Override            // Compiler-Check

II. Wer wertet die aus?


Wer Wann Wofür
Compiler Compile-Zeit @Override, @Deprecated
WildFly Deploy-Zeit @Stateless, @WebServlet, @Entity
Hibernate Runtime @Entity, @Id, @Column
Frameworks Runtime Eigene Logik per Reflection
.NET-Vergleich

Wie [Attribute] in C# — same idea, andere Syntax.

III. Selber schreiben


@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyAnnotation { }