注釈付きの注釈を使用してメタ注釈を作成できます。たとえば@Transactional、Springでの次の使用法を検討してください。
/**
* Shortcut and more descriptive "alias" for {@code @Transactional(propagation = Propagation.MANDATORY)}.
*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional(propagation = Propagation.MANDATORY)
public @interface RequiresExistingTransaction {
}
Springがアノテーションを処理できるようにすると、Springは@Transactional、それを運ぶクラスとメソッド、@Transactional またはそれのメタアノテーション(でアノテーションが付けられたアノテーション@Transactional)を探します。
とにかく、これは注釈付きの注釈を利用する方法の1つの具体的な例にすぎません。それらを使用するのが理にかなっているのは、ほとんどがSpringのようなフレームワークだと思います。