Fragmentos da Web
Ao desenvolver aplicativos da Web, se diversos módulos da Web usarem os mesmos componentes, considere a inclusão de componentes em um arquivo Java archive (JAR) de fragmento da Web. O arquivo JAR de fragmento da Web contém os metadados de configuração e os arquivos de classes de componentes. Esta prática permite copiar mais facilmente de um aplicativo para outro.
Os fragmentos do descritor de implementação de módulo da Web (fragmentos da Web) fornecem os mesmos metadados de configuração que um arquivo web.xml fornece, mas existem como um arquivo web-fragment.xml que é empacotado em um arquivo JAR no diretório WEB-INF/lib.
Os desenvolvedores de estruturas fornecem arquivos JAR que são incluídos em um aplicativo da Web que usa essa estrutura específica. Se essa estrutura usar servlets, filtros ou outra configuração de módulo da Web, os fragmentos da Web fornecerão a capacidade de simplesmente arrastar o arquivo JAR para um aplicativo sem a necessidade de alterações na configuração de módulo da Web existente. Anteriormente, os desenvolvedores de aplicativos da Web precisavam aumentar sua configuração com metadados adicionais exigidos pela estrutura. Outro caso de uso é a necessidade, mencionada acima, de usar os mesmos componentes nos módulos da Web. Além disso, o uso de objetos ou stubs simulados pode ser facilitado com fragmentos da Web.


- Os arquivos JAR são varridos por anotações ou metadados do fragmento da Web apenas se estiverem no diretório WEB-INF/lib. As bibliotecas compartilhadas não são varridas por anotações ou metadados do fragmento da Web.
- As anotações que estão nas classes no diretório WEB-INF/classes são mescladas primeiro e têm precedência sobre quaisquer metadados no diretório WEB-INF/lib.
- Todos os arquivos JAR no diretório WEB-INF/lib são considerados fragmentos da Web, independentemente de conterem um arquivo web-fragment.xml. Se um arquivo web-fragment.xml não existir em um arquivo JAR, será considerado que ele possui um arquivo web-fragment.xml implícito vazio.
- As anotações para cada arquivo JAR no diretório WEB-INF/lib são mescladas no arquivo web-fragment.xml correspondente antes de verificar a existência de conflitos entre os fragmentos da web. Portanto, os conflitos entre anotações em diferentes fragmentos evitam que o aplicativo seja implementado.
- Se você definir uma ordem de fragmentos da web, a anotação e os metadados do fragmento da web para um fragmento da web serão mesclados antes de um outro fragmento que está acima na ordem.
- Como todos os arquivos JAR no diretório WEB-INF/lib são considerados fragmentos, o elemento <others> em um elemento <absolute-ordering> se aplica a todos os arquivos JAR que não são mencionados em outro lugar na ordem.