8.1 Annotations and pluggability - manu9/patterns GitHub Wiki

En una aplicación web, las clases que usan anotaciones tendrán sus anotaciones procesadas solo si están ubicadas en el directorio WEB-INF/classes, o si están empaquetados en un archivo jar localizados en WEB-INF/lib dentro de la aplicación.

El descriptor de despliegue de la aplicación web contiene un atributo "metadata-complete" en el elemento web-app. Este atributo define si este descriptor de despliegue y cualquier fragmento web, si los hay, están completos o si los archivos de clase disponibles para este módulo y empaquetados con esta aplicación deben examinarse para ver las anotaciones que especifican la información de despliegue. La información, en este sentido, se refiere a cualquier información que podría haber sido especificada por el descriptor de despliegue o fragmentos, pero en su lugar se especifica como anotaciones en las clases.

Si el valor del atributo "metadata-complete" es especificado como true, la herramienta de despliegue debe ignorar cualquier anotación que especifique dicha información de despliegue en los archivos de clase empaquetados en la aplicación web. Por favor ver Section 8.2.3, “Assembling the descriptor from web.xml, web-fragment.xml and annotations” on page 8-82, Section 8.4, “Processing annotations and fragments” on page 8-97 and Section 15.5.1, “Handling of metadata-complete” on page 15-194 para detalles adicionales en el controlador de “metadata-complete”.

Si el atributo "metadata-complete" no es especificado, o este valor es false, la herramienta de despliegue debe examinar los archivos de clases de la aplicación por tales anotaciones. Tenga en cuenta que un valor true para "metadata-complete" no prevé el procesamiento de todas las anotaciones, solo las enumeradas a continuación.