Annotation processor is a tool build in javac for scanning and processing annotations at compile time.
Annotations are a class of metadata that can be associated with classes, methods, fields, and even other annotations.There are two ways to access these annotations at runtime via reflection and at compile time via annotation processors.